机器学习算法(三)——Ridge算法和Lasso算法

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

一、算法简介

1-1、岭回归(Ridge Regression)

上节我们讲到了线性回归,那么思考这么一个问题:

如果数据特征比样本点还多怎么办?
是否还可以使用线性回归和之前的方法来做预测?

答案是:否定的。因为此时输入数据的矩阵不是满秩矩阵,非满秩矩阵在求逆时会出现问题。

为了解决这个问题,引入了岭回归(Ridge Regression)的概念。

缩减方法可以去掉不重要的参数,因此能更好地理解数据。此外,与简单的线性回归相比,缩减法能取得更好的预测效果。

1-2、套索回归(Lasso Regression)

除了Ridge,还有一种正则化的线性回归是Lasso。与岭回归相同,使用Lasso也是约束系数使其接近于0。

二、算法原理

2-1、岭回归原理

Ridge回归通过对系数的大小进行惩罚来解决普通最小二乘的一些问题 。公式如下:

岭回归是加了二阶正则项的最小二乘,主要适用于过拟合严重或各变量之间存在多重共线性的时候,岭回归是有bias的,这里的bias是为了让variance更小。

所以岭回归的关键是找到一个合理的α值来平衡模型的方差和偏差。

α的选择:

2-2、套索回归原理

岭回归无法剔除变量,而LASSO回归模型,将惩罚项由L2范数变为L1范数,可以将一些不重要的回归系数缩减为0,达到剔除变量的目的。

Lasso回归作用:因此它的效果就是让w往0靠,使网络中的权重尽可能为0,也就相当于减小了网络复杂度,防止过拟合

三、算法要点

过拟合(over-fitting)
在训练数据不够时,或者over-training时,常常会导致over-fitting(过拟合)。会使得对于训练数据准确率高,对于新数据准确率低。

避免过拟合的方法有很多:early stopping、数据集扩增(Data augmentation)、正则化(Regularization)包括L1、L2(L2 regularization也叫weight decay),dropout。

3-1、L1正则化

为什么叫L1正则化?

因为后面加上了||w||的一次幂。
正则(Re) -------> Regularization(规则化)限制,不能让系数无限大。系数波动大,方程不稳定。

比原始的更新规则多出了η * λ * sgn(w)/n这一项。当w为正时,更新后的w变小。当w为负时,更新后的w变大。

另外,上面没有提到一个问题,当w为0时怎么办?当w等于0时,|W|是不可导的,所以我们只能按照原始的未经正则化的方法去更新w,这就相当于去掉ηλsgn(w)/n这一项,所以我们可以规定sgn(0)=0,这样就把w=0的情况也统一进来了。(在编程的时候,令sgn(0)=0,sgn(w>0)=1,sgn(w<0)=-1)

3-2、L2正则化

为什么叫L2正则化?

因为后面加上了||w||的平方

  C0代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与C0项的比重。另外还有一个系数1/2,1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整。

对比上面w的更新公式,可以发现后面那一项变了,变成所有导数加和,乘以η再除以m,m是一个mini-batch中样本的个数。

过拟合的时候,拟合函数的系数往往非常大,为什么?

如下图所示,过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。

在某些很小的区间里,函数值的变化很剧烈。这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

为什么要进行正则化?

正则化是通过约束参数的范数使其不要太大,所以可以在一定程度上减少过拟合情况。正则化:防止过拟合,提高泛化能力。

四、线性回归、岭回归、套索回归异同点

相同点

不同点

-岭回归:L2正则化

-套索回归:L1正则化

在实践中,岭回归与套索回归首先岭回归。但是,如果特征特别多,而某些特征更重要,具有选择性,那就选择Lasso可能更好。
scikit-learn还提供了ElasticNet类,结合了Lasso和Ridge的惩罚项。在实践中,这种结合的效果最好,不过代价是要调节两个参数:一个用于L1正则化,一个用于L2正则化。
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看