跳转至

线性模型

以下内容由AI生成

普通最小二乘法带来的局限性,导致许多时候都不能直接使用其进行线性回归拟合。特别是以下两种情况:

  • 数据集的列(特征)数量 > 数据量(行数量),即系数矩阵X不是列满秩。
  • 数据集列(特征)数据之间存在较强的线性相关性,即模型容易出现过拟合。

1. 岭回归

岭回归向损失函数中添加L2正则项,防止出现过拟合

sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto', random_state=None)
  • alpha: 正则化强度,默认为 1.0。
  • fit_intercept: 默认为 True,计算截距项。
  • normalize: 默认为 False,不针对数据进行标准化处理。
  • copy_X: 默认为 True,即使用数据的副本进行操作,防止影响原数据。
  • max_iter: 最大迭代次数,默认为 None。
  • tol: 数据解算精度。
  • solver: 根据数据类型自动选择求解器。
  • random_state: 随机数发生器。

包含截距项:模型自动计算截距,适用大多数情况

不包含截距项:适用数据已经中心化的情况

2. LASSO回归

LASSO 回归添加是 1 正则项

sklearn.linear_model.Lasso(alpha=1.0, fit_intercept=True, normalize=False, precompute=False, copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, positive=False, random_state=None, selection='cyclic')
  • alpha: 正则化强度,默认为 1.0。
  • fit_intercept: 默认为 True,计算截距项。
  • normalize: 默认为 False,不针对数据进行标准化处理。
  • precompute: 是否使用预先计算的 Gram 矩阵来加速计算。
  • copy_X: 默认为 True,即使用数据的副本进行操作,防止影响原数据。
  • max_iter: 最大迭代次数,默认为 1000。
  • tol: 数据解算精度。
  • warm_start: 重用先前调用的解决方案以适合初始化。
  • positive: 强制系数为正值。
  • random_state: 随机数发生器。
  • selection: 每次迭代都会更新一个随机系数。