Я пытаюсь выполнить нелинейную регрессию машинного обучения на двух входах x, y. Я готовлюсь. Проблема заключается в оценке соответствия для данного ввода.
Мой код:
x,y = [0,1,2,3,3.8],[0,0,2,6,10]
t1 = x
ym1 = y
# define function for fitting
def EvaluateEqu(t,c0,c1,c2,c3): # Evaluate c0 + c1*t - c2*e^(-c3*t)
return c0+c1*t-c2*np.exp(-c3*t)
# find optimal parameters
p01 = [10,1,10,0.01]# initial guesses
c1,cov1 = curve_fit(EvaluateEqu,t1,ym1,p01) # fit model
# print parameters
print('Optimal parameters')
print(c1) #
# calculate prediction
yp1 = EvaluateEqu(t1,c1[0],c1[1],c1[2],c1[3])
Текущий вывод:
Optimal parameters
[ 9.24814462e+00 2.67773867e+00 1.08963197e+01 -9.15178702e-06]
Traceback (most recent call last):
File "<ipython-input-15-e40604698a1f>", line 15, in <module>
yp1 = EvaluateEqu(t1,c1[0],c1[1],c1[2],c1[3])
File "<ipython-input-15-e40604698a1f>", line 6, in EvaluateEqu
return c0+c1*t-c2*np.exp(-c3*t)
TypeError: can't multiply sequence by non-int of type 'numpy.float64'