在Python中拟合多元curve_fit逻辑函数

问题描述

我适合物流功能 X形:(5,2)

def logifunc(x,A,x0,k):
     return A / (1 + np.exp(-k*(x-x0)))

popt,pcov = curve_fit(logifunc,X,y)

我的X是:

array([[ 0.000e+00,1.000e+00,2.000e+00,3.000e+00,4.000e+00],[-1.000e+00,5.480e+02,6.430e+02,9.200e+02,1.406e+03]])

y是:

array([ 548.,643.,920.,1406.,2075.])

我收到错误消息:

TypeError                                 Traceback (most recent call last)
<ipython-input-68-acf83ee46c52> in <module>()
     14 X = np.vstack((t.ravel(),np.array(P).ravel()))
     15 
---> 16 popt,y)

1 frames
/usr/local/lib/python3.6/dist-packages/scipy/optimize/minpack.py in leastsq(func,args,Dfun,full_output,col_deriv,ftol,xtol,gtol,maxfev,epsfcn,factor,diag)
    390 
    391     if n > m:
--> 392         raise TypeError('Improper input: N=%s must not exceed M=%s' % (n,m))
    393 
    394     if epsfcn is None:

TypeError: Improper input: N=3 must not exceed M=2

我不确定如何解决错误

解决方法

通常,N是要素数量,M是示例点(行)的数量。因此,我相信,因为您的行数少于模型难以拟合曲线的特征数。