如何解决curve_fit - 关于 var/covar 矩阵的问题
我使用 curve_fit
将曲线拟合到 2D 空间中的某些数据点集 (x,y)
。正如我们所知,curve_fit
有这个 p0
参数。
https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html
curve_fit
返回的第二个东西是 pcov
,当我取 pcov
的对角线并平方根时,我得到一个向量 v
的值。>
然后我将所有这些值(来自这个向量 v
)相加,我得到一个数字 S
:我解释的东西(正确与否,我不确定?!)作为整体 { {1}}。 (或说 std.dev
的总和)。
我注意到当我改变 std.deviations
时,我会得到不同的曲线,并且它们具有不同的 p0
值。而且,有时我认为曲线在视觉上看起来没有太大不同,但它们的 S
值差异很大。
我不完全理解这个 S
矩阵,因此我很困惑。它是什么的方差-协方差矩阵?!
我的问题是:这个 pcov
值
S
是否衡量我的曲线与数据的拟合程度?
或
1)
是否更像是衡量优化过程(发生在 2)
内部)收敛速度(给定我使用的特定 curve_fit
值)的速度?
我希望它是 1),因此我可以使用这个数字 p0
作为曲线拟合过程的质量度量。
是这样还是不是?
另外,任何与上述疑问有关的解释将不胜感激。
解决方法
在我看来,这更像是你的第一点。
来自docs:
popt 的估计协方差。对角线提供方差 参数估计值。计算一个标准偏差误差 参数使用 perr = np.sqrt(np.diag(pcov)).
所以 pcov
越小,参数估计的误差越小。
-- 编辑 ---
pcov
表示求解器对提供的参数 popt
是最佳和唯一的确定性。这并不一定意味着它们可以很好地拟合数据。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。