python最小二乘线性回归(Python做线性回归)

灰太狼 2023-09-25 10:46 208阅读 0赞

怎么用Python将图像边界用最小二乘法拟合成曲线

本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:

这里不手动实现最小二乘,调用scipy库中实现好的相关优化函数。

考虑如下的含有4个参数的函数式:

123456789101112131415

importnumpyasnpfromscipyimportoptimizeimportmatplotlib.pyplotaspltdeflogistic4(x,A,B,C,D):return(A-D)/(1+(x/C)**B)+Ddefresiduals(p,y,x):A,B,C,D=preturny-logisctic4(x,A,B,C,D)defpeval(x,p):A,B,C,D=preturnlogistic4(x,A,B,C,D)A,B,C,D=.5,2.5,8,7.3x=np.linspace(0,20,20)y_true=logistic4(x,A,B,C,D)y_meas=y_true+0.2*np.random.randn(len(y_true))

调用工具箱函数,进行优化

p0=[1/2]*4plesq=optimize.leastsq(residuals,p0,args=(y_meas,x))#leastsq函数的功能其实是根据误差(y_meas-y_true)#估计模型(也即函数)的参数

12345678

plt.figure(figsize=(6,4.5))plt.plot(x,peval(x,plesq[0]),x,y_meas,’o’,x,y_true)plt.legend([‘Fit’,’Noisy’,’True’],loc=’upperleft’)plt.title(‘leastsquareforthenoisydata(measurements)’)fori,(param,true,est)inenumerate(zip(‘ABCD’,[A,B,C,D],plesq[0])):plt.text(11,2-i*.5,’{}={:.2f},est({:.2f})={:.2f}‘.format(param,true,param,est))plt.savefig(‘./logisitic.png’)plt.show()

希望本文所述对大家Python程序设计有所帮助。

可不可以把图片上的曲线拟合出来

线性回归与最小二乘法的关系

发表评论

表情:
评论列表 (有 0 条评论,208人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线性回归乘法

    目录 简单线性回归  最小二乘法  拟合为曲线的方程 -------------------- 实质:就是构造误差方程,求导取0 得到误差最小值,进而得到线形参数