Constrained least-squares estimation in Python

霸气de小男生 提交于 2020-01-11 04:30:28

问题


I'm trying to perform a constrained least-squares estimation using Scipy such that all of the coefficients are in the range (0,1) and sum to 1 (this functionality is implemented in Matlab's LSQLIN function).

Does anybody have tips for setting up this calculation using Python/Scipy. I believe I should be using scipy.optimize.fmin_slsqp(), but am not entirely sure what parameters I should be passing to it.[1]

Many thanks for the help, Nick

[1] The one example in the documentation for fmin_slsqp is a bit difficult for me to parse without the referenced text -- and I'm new to using Scipy.


回答1:


scipy-optimize-leastsq-with-bound-constraints on SO givesleastsq_bounds, which is leastsq with bound constraints such as 0 <= x_i <= 1. The constraint that they sum to 1 can be added in the same way.
(I've found leastsq_bounds / MINPACK to be good on synthetic test functions in 5d, 10d, 20d; how many variables do you have ?)




回答2:


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




回答3:


Since MATLAB's lsqlin is a bounded linear least squares solver, you would want to check out scipy.optimize.lsq_linear.



来源:https://stackoverflow.com/questions/9269383/constrained-least-squares-estimation-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!