Python 中具有正系数的线性回归



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

我找到的唯一方法是 sklearn 的套索模型,它有一个positive=True参数,但不建议使用 alpha=0(意味着对权重没有其他约束)。

您知道另一种模型/方法/方法吗?

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

解决argmin_x ||斧头 - b ||_2 表示 x>=0。

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

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

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

从0.24版本开始,scikit-learn LinearRegression包含一个类似的参数positive,它正是这样做的; 从文档中:

正:布尔值,默认值=假

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

版本 0.24 中的新功能。

相关内容

  • 没有找到相关文章