[英]Python - R square and absolute sum of squares obtainable by scipy.optimize curve_fit?
我使用curve_fit拟合曲线。 有没有办法读出决定系数和平方的绝对和? 谢谢,Woodpicker
根据doc ,使用curve_fit
优化可以实现
参数的最佳值使得f(xdata,* popt) - ydata的平方误差之和最小化
然后,使用optimize.leastsq
import scipy.optimize
p,cov,infodict,mesg,ier = optimize.leastsq(
residuals,a_guess,args=(x,y),full_output=True,warning=True)
用于residuals
:
def residuals(a,x,y):
return y-f(x,a)
residuals
是返回真实输出数据y
和模型输出之间差异的方法,其中f
为模型, a
为参数, x
为输入数据。
方法optimize.leastsq
返回了大量可用于自行计算RSquared和RMSE的信息。 对于RSQuared,你可以做到
ssErr = (infodict['fvec']**2).sum()
ssTot = ((y-y.mean())**2).sum()
rsquared = 1-(ssErr/ssTot )
关于什么是infodict['fvec']
更多细节
In [48]: optimize.leastsq?
...
infodict -- a dictionary of optional outputs with the keys:
'fvec' : the function evaluated at the output
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.