这边文章主要是记录自己对于Ridge & Lasson & Elastic Net的理解和总结.内容较为粗浅,偏向应用而没有太多的数学理论.
线性回归是一种相对比较简单的模型,通常用来拟合具有线性分布关系的样本.为了解决样本非线性分布情况下的问题,可以给线性回归模型输入多项式特征(scikit-learn 中的 PolynomialFeatures
就是用来构造髙次特征),从而让线性模型能够拟合非线性的样本.但是在这种情况下,往往容易遇到过拟合的问题,这时候就需要引入正则化项
来进行解决.
正则化项的目的就是尽量限制模型中参数的大小或者是个数,从而达到防止过拟合的目的.对于线性回归,常用的有L1和L2正则化项,同时也对应着Lasso和Ridge算法.
关于L1和L2正则化项,这里有一篇讲解得很好的文章:https://blog.csdn.net/zouxy09/article/details/24971995
Ridge
Ridge回归又称为岭回归,其采用的正则化项为L2范数,模型的损失函数为:
Ridge
特点:
- Ridge岭回归采用了L2范数作为正则化项.L2范数功能强大,能够有效改善模型的过拟合问题,因此Ridge回归也具有同样的特性.
- 相比采用L1正则项的Lasso,Ridge回归在进行正则化的时候不会抛弃特征(即不会令模型中特征前的系数为0),只会尽量地将其的权值进行缩小(也叫权值衰减 Weight decay),因此往往会有比较好的防止过拟合的效果同时还不会错误地丢失某些特征.这也是L2范式和Ridge回归更受欢迎的原因.
Lasso
Lasso回归的正则化项为L1范数,其损失函数模型为:
Lasso
特点:
- Lasso回归采用了L1范数作为正则化项.L1范数又被成为
稀疏特征算子
,其含义以即能够在训练过程中自动抛弃一些模型认为无用的特征,实现模型参数稀疏化
.因此Lasso也常常被用来作为特征选择器Selection Operator
. - 相比于Rigde模型,Lasso在L1范数的支配下往往会抛弃一些特征,因此模型曲线也会更加倾向于
直线
.但是这也可能带来某些潜在的关键特征被抛弃的风险,并且Lasso模型的准确度是不如Rigde模型的.
Elastic Net
Elastic Net弹性网结合了Lasso和Ridge的正则化项,其损失函数模型为:
Elastic Net
特点:
- Elastic Net结合了Ridge和Lasso的特点,即结合了L1和L2正则化项,这也使得Elastic Net模型兼具了两者的优势,能够实现对参数的
柔性调整
.
Conclusion:
- Ridge 和 Lasso 还有 Elastic Net都是在线性模型的基础上发展而来,都是广义意义上的线性模型(我也不知道这么描述对不对)
- 通常来说Ridge 是三者中
准确率最高的模型
,在数据特征不是非常多的时候,该模型是应用首选. - Lasso回归在实际应用当中是一把很趁手的
特征选择的武器
,能够较为可靠地筛选出拟合时挑选出的更加重要的那些特征. - 当训练数据特征过多,计算量过大时.可以采用Elastic Net,因为其可以适当抛弃特征减少运算量同时还可以保证模型的性能,不会像Lasso那样倾向抛弃特征而带来准确下降的风险.
网友评论