我正在尝试使用 Scipy 执行约束最小二乘估计,以使所有系数都在范围内(0,1)
并求和1
(此功能在 Matlab 的LSQLIN
函数中实现)。
有没有人有使用 Python/Scipy 设置此计算的提示。我相信我应该使用scipy.optimize.fmin_slsqp()
,但不完全确定应该传递给它的参数。[1]
非常感谢您的帮助,尼克
[1] 文档中的一个示例在fmin_slsqp
没有引用文本的情况下对我来说有点难以解析——而且我是使用 Scipy 的新手。
我正在尝试使用 Scipy 执行约束最小二乘估计,以使所有系数都在范围内(0,1)
并求和1
(此功能在 Matlab 的LSQLIN
函数中实现)。
有没有人有使用 Python/Scipy 设置此计算的提示。我相信我应该使用scipy.optimize.fmin_slsqp()
,但不完全确定应该传递给它的参数。[1]
非常感谢您的帮助,尼克
[1] 文档中的一个示例在fmin_slsqp
没有引用文本的情况下对我来说有点难以解析——而且我是使用 Scipy 的新手。
SO 上的 scipy-optimize-leastsq-with-bound-constraints给出leastsq_bounds
,它是
具有约束约束的最小平方
,例如 0 <= x_i <= 1。它们总和为 1 的约束可以以相同的方式添加。
(我发现leastsq_bounds
/MINPACK 在 5d、10d、20d 的综合测试功能上表现不错;你有多少变量?)
Have a look at this tutorial, it seems pretty clear.
由于 MATLABlsqlin
是有界线性最小二乘求解器,因此您需要查看scipy.optimize.lsq_linear。