scikit-learn 或 statsmodels 中线性回归调整参数的限制范围

limit bounds of tuning parameters for linear regression in scikit-learn or statsmodels

是否可以限制 scikit-learn 或 statsmodels 中线性回归调整参数的范围,例如在 statsmodels.regression.linear_model.OLS 或 sklearn.linear_model.LinearRegression?

http://statsmodels.sourceforge.net/devel/generated/statsmodels.regression.linear_model.OLS.html

http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html

编辑:


scipy 0.17 包括 scipy.optimize.leastsq 和约束:

http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.optimize.least_squares.html#scipy.optimize.least_squares

理想情况下,我正在寻找的是最小化 objective 误差函数,并最小化调整乘数参数从默认值 1.0 的变化。这可能是 objective 函数的一部分。

请注意,这是适用于我的框边界的选项列表:

method='trf' or 'dogbox'
loss='cauchy'
f_scale=1e-5 to 1e-2

不确定 "limit the bounds of tuning parameters" 是什么意思。

  • 如果您希望结果分量位于预先指定的范围内,您可以尝试 scipy.optimize.least_squares,这解决了

    minimize F(x) = 0.5 * sum(rho(f_i(x)**2), i = 0, ..., m - 1) subject to lb <= x <= ub

  • 如果您担心结果分量由于共线性而在数量级上太大,您可以尝试 sklearn.linear_model.Ridge(或那里的其他正则化线性回归量之一)。