Python中的约束最小二乘估计
Posted
技术标签:
【中文标题】Python中的约束最小二乘估计【英文标题】:Constrained least-squares estimation in Python 【发布时间】: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
是针对此类问题的凸优化库。
【参考方案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。
【讨论】:
是的,但是如何添加线性约束表达式?该文档似乎只允许指定变量的界限。以上是关于Python中的约束最小二乘估计的主要内容,如果未能解决你的问题,请参考以下文章