我现在需要做一个线性回归,但是考虑到实际意义,要求所有的回归系数都是非负的。回归是采用最小二乘的方法。
请问这类回归在python中有什么实现的方法吗?
多谢多谢!
2个回答
这个叫非负最小二乘回归。sklearn.linear_model.Lasso里可以设置positive=True来使得系数都为正。如果你不需要正则化的话就把alpha设成0或者很小的数。
from sklearn.linear_model import Lasso
model = Lasso(alpha=0.00001, positive=True)
model.fit(X,y)
这是带不等式条件的二次规划(Quadratic Programming)
$argmin_{w}{|Xw-y|^2} s.t. w>0$,
可以用http://cvxopt.org/examples/tutorial/qp.html
https://scaron.info/blog/quadratic-programming-in-python.html
SofaSofa数据科学社区DS面试题库 DS面经