私は理解していませんcurve_fit
は、パラメータの共分散を推定することができませんので、下にOptimizeWarning
を上げてください。パラメータが正確に収まる場合、 `curve_fit`はパラメータの共分散を推定できないのはなぜですか?
MCVEパイソンスニペット
from scipy.optimize import curve_fit
func = lambda x, a: a * x
popt, pcov = curve_fit(f = func, xdata = [1], ydata = [1])
print(popt, pcov)
機能が正確にxdata
とydata
に合う
\python-3.4.4\lib\site-packages\scipy\optimize\minpack.py:715:
OptimizeWarning: Covariance of the parameters could not be estimated
category=OptimizeWarning)
[ 1.] [[ inf]]
a = 1
ための出力:以下MCVEは私の問題を説明します。エラー/分散が0
、または0
に近いものが、代わりにinf
になるのはなぜですか? curve_fit
SciPy Reference Guideからこの引用があり
:ソリューションでのヤコビ行列がフルランクを持っていない場合は
は、その後、「LM」メソッドは他に、np.infで満たされた行列を返します手の 'trf'と 'dogbox'メソッドはMoore-Penrose pseudoinverseを使って共分散行列を計算します。
だから根本的な問題は何ですか?なぜソリューションのヤコビ行列がフルランクを持っていないのですか?