es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Importa el orden de fit_params al usar el módulo de Python lmfit?

Actualmente tengo los siguientes parámetros para optimizar ['Knn', 'Kss', 'Ktt', 'tn', 'ts', 'tt', 'FE']

<h1>Knn</h1>

<p>fit_params.add('Knn', value=Knn_i, min=Knn_LB, max=Knn_UB, vary=True)</p>

<h1>Kss</h1>

<p>fit_params.add('Kss', value=Kss_i, min=Kss_LB, max=Kss_UB, vary=True)</p>

<h1>Ktt</h1>

<p>fit_params.add('Ktt', value=Ktt_i, min=Ktt_LB, max=Ktt_UB, vary=True)</p>

<h1>tn</h1>

<p>fit_params.add('tn', value=tn_i, min=tn_LB, max=tn_UB, vary=True)</p>

<h1>ts</h1>

<p>fit_params.add('ts', value=ts_i, min=ts_LB, max=ts_UB, vary=True)</p>

<h1>tt</h1>

<p>fit_params.add('tt', value=tt_i, min=tt_LB, max=tt_UB, vary=True)</p>

<h1>FE</h1>

<p>fit_params.add('FE', value=FE_i, min=FE_LB, max=FE_UB, vary=True)</p>

¿Cambiarán los resultados si cambio el orden a algo como ['tn', 'FE', 'Knn', 'tt', 'Ktt', 'ts', 'Kss']? ¿Habría alguna razón para creer que no?

Dentro del depurador de Python, puedo imprimir bonito la estructura de la clase

python
IPdb [1]: pprint.pprint(fit_params)
Parameters([('Knn',
<Parameter 'Knn', value=1920120.3446234118, bounds=[1024:268435456]>),
('Kss',
<Parameter 'Kss', value=71663344.41919732, bounds=[1024:268435456]>),
('Ktt',
<Parameter 'Ktt', value=77146988.69681165, bounds=[1024:268435456]>),
('tn',
<Parameter 'tn', value=838.7989371561512, bounds=[8:1048576]>),
('ts',
<Parameter 'ts', value=976.643262263194, bounds=[8:1048576]>),
('tt', <Parameter 'tt', value=520.0015376886633, bounds=[8:32768]>),
('FE',
<Parameter 'FE', value=1.929e-06, bounds=[9.313225746154785e-10:1]>)])

pero parece que el orden importa. Cuando observo los ajustes mínimos de cada parámetro con cada iteración, el primer parámetro “Knn” cambia primero, “Kss” cambia en segundo lugar, y el último es “FE”.

¿Hay alguna manera de mezclar el orden de un objeto de clase? ¿O sería mejor simplemente escribirlos en el orden que deseo?

Tags:  

Answer

  1. Avatar for davy.ai

    El orden de los parámetros es importante en el proceso de optimización de lmfit. Cambiar el orden de los parámetros en el objeto fit_params probablemente resultará en diferentes resultados de optimización. El orden en el que los parámetros están listados en el objeto afectará el orden en el que son optimizados, por lo que cambiar el orden podría alterar la secuencia de cambios de parámetros en cada iteración.

    Si bien puede haber formas de reordenar los parámetros dentro del objeto de clase Parameters o durante el proceso de optimización, generalmente es buena práctica listar los parámetros en el orden en el que se desea optimizar. Esto asegurará que el proceso de optimización siga el orden deseado y puede conducir a resultados más consistentes.

Comments are closed.