【问题标题】:Linear Regression with positive coefficients in PythonPython中具有正系数的线性回归
【发布时间】:2016-06-29 10:30:06
【问题描述】:

我正在尝试找到一种方法来拟合具有正系数的线性回归模型。

我找到的唯一方法是sklearn's Lasso model,它有一个positive=True 参数,但不建议使用alpha=0(意味着对权重没有其他限制)。

你知道另一种模式/方法/方法吗?

【问题讨论】:

    标签: python machine-learning scikit-learn linear-regression


    【解决方案1】:

    许多函数可以保持具有正系数的线性回归模型。

    1. scipy.optimize.nnls可以解决以上问题。
    2. scikit-learn LinearRegression 可以设置参数positive=True来解决这个问题。而且,sklearn 还使用 scipy.optimize.nnls。有趣的是,您可以学习如何在源代码中编写多个目标输出
    3. 此外,如果您想求解带有变量界限的线性最小二乘法。你可以看到lsq_linear

    【讨论】:

      【解决方案2】:

      从 0.24 版开始,scikit-learn LinearRegression 包含一个类似的参数 positive,它就是这样做的;来自docs

      肯定:bool,默认=False

      当设置为True 时,强制系数为正。仅密集数组支持此选项。

      0.24 版中的新功能。

      【讨论】:

        【解决方案3】:

        IIUC,这是scipy.optimize.nnls可以解决的问题,可以做非负最小二乘。

        求解 argmin_x || Ax - b ||_2 表示 x>=0。

        在您的情况下,byAX,而 x β(系数),但除此之外,它是一样的,不是吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-22
          • 2021-08-20
          • 2016-11-21
          • 2021-06-19
          • 1970-01-01
          • 2016-05-29
          • 2018-10-02
          • 2021-02-26
          相关资源
          最近更新 更多