ulm*_*ngt 17 python numpy mathematical-optimization scipy linear-regression
我有一个经典的线性回归问题的形式:
y = X b
其中y是响应向量 X是一个矩阵输入变量的和b是拟合参数我寻找的矢量.
Python提供b = numpy.linalg.lstsq( X , y )了解决此形式的问题.
但是,当我使用它时,我倾向于得到组件的极大或极小的值b.
我想执行相同的拟合,但约束b0到255之间的值.
它看起来像是scipy.optimize.fmin_slsqp()一个选项,但我发现它对我感兴趣的问题的大小非常缓慢(X有点像3375 by 1500希望甚至更大).
b数值的回归方法?con*_*lee 10
你提到你会发现Lasso Regression或Ridge Regression可以接受.scikit-learn包中提供了这些和许多其他约束线性模型.查看有关广义线性模型的部分.
通常约束系数涉及某种正则化参数(C或alpha)---一些模型(以CV结尾的模型)可以使用交叉验证来自动设置这些参数.您还可以进一步约束模型以仅使用正系数 - 例如,在Lasso模型上有一个选项.
看看:http: //scipy-central.org/item/17/3/pymls-solving-bounded-linear-least-squares-problems
Openopt还绑定了bvls,另一个有界线性lsq求解器.
编辑:你也可以试试scipy.optimize.nnls就够了.