python - 当 scipy.optimize.minimize 可能用于相同的事情时,为什么 scipy.optimize.least_squares 存在?

标签 python scipy mathematical-optimization model-fitting

我试图理解为什么 scipy.optimize.least_squares存在于 scipy .此函数可用于执行模型拟合。但是,可以使用 scipy.optimize.minimize做同样的事情。唯一的区别是scipy.optimize.least_squares在内部进行卡方的计算,而如果想使用 scipy.optimize.minimize ,他/她必须在用户想要最小化的函数内手动计算卡方。另外,scipy.optimize.least_squares不能被视为 scipy.optimize.minimize 的包装器因为它支持的三种方法( trfdogboxlm ),完全不支持 scipy.optimize.minimize .

所以我的问题是:

  • 为什么scipy.optimize.least_squares当使用 scipy.optimize.minimize 可以获得相同的结果时存在?
  • 为什么scipy.optimize.minimize不支持trf , dogbox , 和 lm方法?

  • 谢谢你。

    最佳答案

    scipy.optimize.least_squares 中的算法利用最小化问题的最小二乘结构以获得更好的收敛性(或使用的导数的低阶)。

    类似于高斯-牛顿算法和牛顿法的区别,见Wikipediathis question .

    特别是高斯牛顿法只使用雅可比(一阶导数),而牛顿法还使用了海森(二阶导数),计算成本很高。

    关于python - 当 scipy.optimize.minimize 可能用于相同的事情时,为什么 scipy.optimize.least_squares 存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211783/

    相关文章:

    algorithm - 背包算法的变体

    python - Python 中的 K 均值聚类

    python - 有什么好的方法可以为 swig 接口(interface)生成文档吗?

    Python子进程模块将路径作为字符串发送

    python - 来自边缘列表的 Scipy 稀疏矩阵

    匹配点集的算法

    python - python 如何使用类调用其他文件中的变量?

    python - 在其内容循环中删除顺序NumPy数组索引

    python - 索引错误 : too many indices for np. 数组

    algorithm - 计算设置比率矩形大小和位置以最大化与任意表面的交点