Curve_fit を使用してカーブをフィッティングしています。決定係数と絶対二乗和を読み取る方法はありますか? ありがとう、ウッドピッカー
3208 次
1 に答える
5
doc によると、最適化を使用するとcurve_fit
、
f(xdata, *popt) - ydata の 2 乗誤差の合計が最小になるようなパラメーターの最適値
次に、使用します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
メソッドは、 RSquared と RMSE を自分で計算するためoptimize.leastsq
に使用できる多くの情報を返します。RSQuardの場合、次のことができます
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
于 2013-05-09T21:35:14.210 に答える