Подгонка модели lmfit, а затем прогноз - PullRequest
0 голосов
/ 28 мая 2018

Я принимал lmfit для подбора кривой и использовал эту подгоночную модель для прогнозирования.Однако следующий код не достиг того, чего я хочу.Не могли бы вы помочь?Спасибо.

import numpy as np
from lmfit import Model

def linearModel(x, a0, a1):
    return a0+a1*x

#main code begin here
X=[1,2,4]  # data for fitting
y=[2,4,6]  # data for fitting
gmodel = Model(linearModel)  #select model      
params = gmodel.make_params(a0=1, a1=1) # initial params
result = gmodel.fit(y, params, x=X) # curve fitting
x1=[1, 2, 3] # input for prediction
a=result.eval(x)   # prediction

1 Ответ

0 голосов
/ 29 мая 2018

Всегда полезно включать код, который вы на самом деле выполняли, результат, который вы получили, и результат, который вы ожидали.

Здесь основная проблема заключается в том, что у вас есть синтаксическая ошибка.Во-вторых, вы должны использовать массивы, а не списки.И в-третьих, как показывают документы (см. https://lmfit.github.io/lmfit-py/model.html#lmfit.model.ModelResult.eval) result.eval() в качестве первого аргумента будет взята params, а не независимая переменная. Короче говоря, вы хотите заменить две последние строки на

x1 = np.array([1, 2, 3]) # input for prediction
a = result.eval(x=x1)   # prediction

, который должен работать как ожидалось.

И: конечно, вам не нужно lmfit для выполнения линейной регрессии.;).

...