用于scipy.optimize.leastsq的二次返回?

时间:2014-07-24 13:42:12

标签: python scipy least-squares

我最近一直在使用scipy.optimize.leastsq,但每当我调用它时我只使用返回" x" (解决方案)来自this long list of return values.我无法看到自己需要返回的任何其他值。我很好奇,有人用过它们吗?它适用于您使用它的功能吗?

2 个答案:

答案 0 :(得分:1)

如果你想了解合适的效果,它们真的很有用。例如,cov_x是协方差矩阵。其对角线条目是估计误差的平方,因此如果您有参数x[i],那么sqrt(cov_x[i,i])将是这些参数的估计不确定性。另一方面,它的非对角线条目告诉你一些拟合参数之间的相关性。 wikipedia article about the covariance matrix对数学细节非常有用。

根据我的意见,更多的值更多用于调试,因此可能有点不同地设计API,以通过异常来处理这种事情,但是如果需要,那里的信息仍然非常有用。

答案 1 :(得分:0)

其中许多返回值反映了(在变量名和值中)来自MINPACK(lmdif和/或lmder)的底层Fortran代码的输出。为什么'ier'和'mesg'都被返回,而其他东西被填充在infodict中,为什么拼写遵循Fortran77惯例超出了我的范围。

很遗憾,返回不是更多Pythonic(比如返回一个OptimizeResult实例,就像new-ish minimize()那样,可能会添加一个'covariance'成员,也许更多来自infodict)。我认为这需要一个围绕leastsq()的包装器级别。