python 非线性回归 curve_fit


非线性回归可以用from scipy.optimize import curve_fit,OLS求解系数。
1、unpack 2d-array
temp_X是一个dataframe,temp_X.values.T转2d-array,curve_fit(func,X,y),X需要是(列,行)的shape,所以需要转置。另外需要定义个func,函数中第一行是unpack 2d-array这个结构,可以用x1,x2,x3,x4 = X,这个等式直接可以把X直接unpack
x1-x4就是每个column,func函数最后定义一个式子返回。

2、curve_fit返回的两个结构,第一个结构就是式子的参数a\b\c\d\e,pcov是估计系数的协方差矩阵

3、计算出拟合后的值
temp_y_hat = func(temp_X.values.T,*popt)

curve_fit适用于非线性,同样也适用于线性,只要能在func中定义出表达式







留言

熱門文章