我正在尝试使用Scipy执行约束最小二乘估计,使得所有系数都在(0,1)
范围内并且总和到1
(此功能在Matlab的{{1}中实现功能)。
有没有人有使用Python / Scipy设置此计算的提示。我相信我应该使用LSQLIN
,但我不完全确定我应该传递给它的参数。[1]
非常感谢你的帮助, 尼克
[1] scipy.optimize.fmin_slsqp()
文档中的一个示例对于我在没有引用文本的情况下进行解析有点困难 - 而且我是使用Scipy的新手。
答案 0 :(得分:7)
leastsq_bounds
,即
leastsq
具有约束约束,例如0 <= x_i <= 1。
它们总和为1的约束可以以相同的方式添加
(我发现leastsq_bounds
/ MINPACK在5d,10d,20d中对合成测试功能有好处;
你有多少变量?)
答案 1 :(得分:2)
看看this tutorial,看起来很清楚。
答案 2 :(得分:0)
由于MATLAB的lsqlin
是一个有界的线性最小二乘解算器,你可以查看scipy.optimize.lsq_linear。