Ridge和Lasso回归

Posted 拉风小宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ridge和Lasso回归相关的知识,希望对你有一定的参考价值。

上周看了看回归方面的知识,顺便复(xue)习一下Ridge(岭回归)和Lasso回归(套索回归)。瞅到了一篇英文博客讲得不错,翻译一下

本文翻译自

Ridge and Lasso Regression

本文是一篇Josh Starmer关于
视频的总结(StatQuest的视频确实是不错的,通俗易懂还唱歌,非常推荐大家有空都看一下

过拟合(Overfitting)

在统计中,过拟合是指过于接近或恰好对应于特定数据集的分析结果,因此可能无法拟合其他数据,或者可靠地预测未来的观察结果。过拟合模型是一种包含过量参数的统计模型,这些过量参数超出了数据可以证明的范围。

过拟合是指使用违反Occam剃刀原理的模型或程序。这种模型包含比最终最佳值更多的可调整参数,或者使用了比最终最佳状态更复杂的方法。

过拟合的最明显结果是验证数据集(validation dataset)的性能不佳。

偏差-方差 权衡(Bias-Variance Tradeoff)

在统计学和机器学习里,偏差方差权衡是一组预测模型的属性。通常在模型参数估计中偏差较小的模型在样本之间的参数估计方差较大,反之亦然。

例如,我们会知道描述两个变量(例如小鼠的身高和体重)之间关系的确切数学公式。

为此,我们使用机器学习来近似公式。然后,我们将数据拆分训练并进行测试。第一个机器学习模型是线性回归(Linear Regression,上面左图),但是不能精确地复制身高和体重之间真实关系的曲线。机器学习无法捕捉真正的关系称为偏差(Bias)。另一个机器学习模型可能完美拟合训练集的弯曲曲线(Squiggly Line,上面右图

但是,当我们在测试集中计算总计平方误差时,我们可能会发现线性线优于弯曲线,因此我们将其称为过拟合(Overfitting)。在机器学习的语言中,训练和测试之间的适合性差异称为方差(Variance)。在机器学习中,理想的算法(ideal algorithm)需要具有低偏差(Low Bias)并且必须能够准确地近似真实关系。在“简单”和“复杂”之间找到最佳方法的两种常用方法是: L 1 L_1 L1 L 2 L_2 L2正则化

L 2 L_2 L2 Ridge回归

正则化(Regularization)方法的目的就是减少过拟合的。

我们尝试使用一条过度拟合(overfit)训练数据的趋势线,其方差比最小二乘回归(OLS)高得多。岭回归(Ridge Regression)的主要思想是要增加一条不拟合(fit)训练数据的新线。换句话说,我们将一定的“偏差”引入新的趋势线,目的是期待获得一个长期较好的预测结果(见下图

我们在实践中要做的是引入一个称为 λ \\lambda λ (Lambda)的偏差,惩罚函数为: λ ∗ s l o p e 2 \\lambda * slope^2 λslope2

其中 λ \\lambda λ是惩罚项,此值称为Ridge回归或者 L 2 L_2 L2

  • L 2 L_2 L2惩罚项是二次的:意味着没有一个系数(斜率)非常大。
  • L 1 L_1 L1惩罚项是是绝对值: λ ∗ ∣ s l o p e ∣ \\lambda *| slope | λslope意味着选择最重要的特征。

λ = 0 \\lambda = 0 λ=0时,惩罚也是0,因此我们只是在最小化残差平方和,此时也是OLS。
λ \\lambda λ逐渐增加时,我们得到接近0的斜率:因此,较大的 λ \\lambda λ意味着:我们的预测对自变量的敏感性降低。我们可以使用交叉验证(Cross-Validation),通常使用10折交叉验证来确定哪个LAMBDA(10-Fold Cross Validation)会得到最低的方差。
λ \\lambda λ是控制偏差方差权衡的调整参数,我们通常通过交叉验证来估计其最佳值。

L 1 L_1 L1 Lasso回归

这种正则化方法也是为了减少过度拟合。

它与岭回归(Ridge Regression)是相似的,最重要的区别是:惩罚函数现在是 λ ∗ ∣ s l o p e ∣ \\lambda *| slope | λslope

Lasso回归的结果与Ridge回归给出的结果非常相似。两者都可以用于逻辑回归(Logistic Regression),离散值回归和交互回归。当我们增加 λ \\lambda λ的值时,Ridge和Lasso之间的巨大差异开始变得明显。实际上,Ridge只能渐近地(asymptotically)将斜率缩小到零,而套索可以直接将斜率缩小到零。当我们在模型中有很多参数时,这样做的好处很明显。

在Ridge中,当我们增加 λ \\lambda λ的值时,最重要的参数可能会缩小一点,次要的参数保持较高的值。

相反,使用Lasso时,当我们增加 λ \\lambda λ的值时,最重要的参数会缩小一点,次要的参数会接近零(或者直接变成0)。因此,套索能够从模型中排除比较呆滞(silly,😳)的参数。

》 后来翻译完发现写的也就那样,重要的知识点好多都没讲到,只是比较感性的分析了一下,还是等我有空再自己写一篇吧(挖个坑

以上是关于Ridge和Lasso回归的主要内容,如果未能解决你的问题,请参考以下文章

Ridge和Lasso回归

使用正则化 (L1 / L2) Lasso 和 Ridge 的逻辑回归模型

LASSO回归与Ridge回归方法及Python实现总结

模型泛化

r语言中对LASSO回归,Ridge岭回归和Elastic Net模型实现

有人计算过 Lasso/Ridge 回归的泊松损失吗?