13

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

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

非常感谢您的帮助,尼克

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

4

3 回答 3

7

SO 上的 scipy-optimize-leastsq-with-bound-constraints给出leastsq_bounds,它是 具有约束约束的最小平方 ,例如 0 <= x_i <= 1。它们总和为 1 的约束可以以相同的方式添加。
(我发现leastsq_bounds/MINPACK 在 5d、10d、20d 的综合测试功能上表现不错;你有多少变量?)

于 2012-03-31T12:47:15.513 回答
2

Have a look at this tutorial, it seems pretty clear.

于 2012-02-15T15:51:18.223 回答
0

由于 MATLABlsqlin是有界线最小二乘求解器,因此您需要查看scipy.optimize.lsq_linear

于 2016-02-11T16:47:43.470 回答