【问题标题】:Constrained least-squares estimation in PythonPython中的约束最小二乘估计
【发布时间】:2012-03-05 09:04:21
【问题描述】:

我正在尝试使用 Scipy 执行约束最小二乘估计,以使所有系数都在 (0,1) 范围内并且总和为 1(此功能在 Matlab 的 LSQLIN 函数中实现)。

是否有人有使用 Python/Scipy 设置此计算的提示。我相信我应该使用scipy.optimize.fmin_slsqp(),但我不完全确定我应该传递给它什么参数。[1]

非常感谢您的帮助, 尼克

[1] fmin_slsqp 文档中的一个示例在没有引用文本的情况下对我来说有点难以解析——而且我是使用 Scipy 的新手。

【问题讨论】:

  • 你需要使用 scipy 吗? cvxpy 是针对此类问题的凸优化库。

标签: python optimization scipy least-squares


【解决方案1】:

看看this tutorial,似乎很清楚。

【讨论】:

    【解决方案2】:

    scipy-optimize-leastsq-with-bound-constraints 在 SO 上给出leastsq_bounds,即 leastsq 具有约束约束,例如 0 (我发现leastsq_bounds/MINPACK 在 5d、10d、20d 的综合测试功能上表现出色; 你有多少变量?)

    【讨论】:

      【解决方案3】:

      由于 MATLAB 的 lsqlin 是有界 线性 最小二乘求解器,您可能需要查看 scipy.optimize.lsq_linear

      【讨论】:

      • 是的,但是如何添加线性约束表达式?该文档似乎只允许指定变量的界限。
      猜你喜欢
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 2013-08-06
      • 2015-08-01
      • 2022-11-13
      • 2021-08-28
      • 2014-12-23
      • 1970-01-01
      相关资源
      最近更新 更多