scipy.optimize.least_squares

时间:2017-05-12 19:20:34

标签: python optimization scipy least-squares

旧版scipy.optimize.leastsq函数返回cov_x参数:

  

cov_x:ndarray

     

使用fjac和ipvt可选输出构建解决方案周围雅可比的估计值。如果遇到奇异矩阵则表示无(表示在某个方向上的曲率非常平坦)。该矩阵必须乘以残差方差,得到参数估计的协方差 - 见curve_fit。

用于估计参数估计的方差。

scipy.optimize.least_squares中此参数的等效值是多少?有:

  

jac:ndarray,稀疏矩阵或LinearOperator,形状(m,n)

     

在解决方案中修改雅可比矩阵,在这个意义上,J ^ T J是成本函数的Hessian的Gauss-Newton近似。类型与算法使用的类型相同。

但实际上并不等同。

1 个答案:

答案 0 :(得分:0)

我不相信有明显的等价物。 jac不一样。它是雅可比矩阵的估计,雅可比矩阵是用于计算优化最小结果的梯度的导数矩阵。

您可以使用curve_fit执行最小二乘回归,这将返回协方差矩阵。

  

返回:

     

popt:数组   参数的最佳值使得   f(xdata, *popt) - ydata的平方残差之和最小化

     

pcov:2d数组   popt的估计协方差。对角线   提供参数估计的方差。计算一个   参数的标准偏差使用perr = np.sqrt(np.diag(pcov))。 sigma参数如何影响估计值   协方差取决于absolute_sigma参数,如上所述。如果   那时,解的雅可比矩阵没有满秩   另一方面,'lm'方法返回一个用np.inf填充的矩阵   'trf'和'dogbox'方法使用Moore-Penrose伪逆来计算   协方差矩阵。

另见scipy.stats.lingress,它也是最小二乘,并返回与协方差相关的相关系数。