
正则化线性模型
的正则化版本,即在原来的线性回归的 cost function 中添加正则项(regularization term)⼀般来说,我们应避免使用朴素线性回归,而应对模型进行⼀定的正则化处理,那如何选择正则化方法呢?例如:当α 取值相对较⼤时,高阶多项式退化为二次甚至是线性:高阶多项式特征的权重被置为0。进行特征选择,并输出⼀个稀疏模型(只有少数特征的权重是非零的)。弹性网络在岭回归和Lasso回归中
文章目录
正则化线性模型,用于处理过拟合或欠拟合问题
Ridge Regression (岭回归,又名 Tikhonov regularization)
岭回归是线性回归
的正则化版本,即在原来的线性回归的 cost function 中添加正则项(regularization term)
α ∑ i = 1 n θ i 2 \alpha \displaystyle\sum_{i=1}^{n}\theta _i^2 αi=1∑nθi2
以达到在拟合数据的同时,使模型权重尽可能小的目的,岭回归代价函数:
J ( θ ) = M E S ( θ ) + α ∑ i = 1 n θ i 2 J(\theta ) = MES(\theta )+\alpha \displaystyle\sum_{i=1}^{n}\theta _i^2 J(θ)=MES(θ)+αi=1∑nθi2
即:
J ( θ ) = 1 m ∑ i = 1 m ( θ T ⋅ x ( i ) − y ( i ) ) 2 + α ∑ i = 1 n θ i 2 J(\theta ) = \frac{\mathrm{1}}{\mathrm{m}}\displaystyle\sum_{i=1}^{m}(\theta ^T·x^{(i)}-y^{(i)})^2+\alpha \displaystyle\sum_{i=1}^{n}\theta _i^2 J(θ)=m1i=1∑m(θT⋅x(i)−y(i))2+αi=1∑nθi2
α=0:岭回归退化为线性回归
Lasso Regression(Lasso 回归)
Lasso 回归是线性回归
的另⼀种正则化版本,正则项为权值向量的ℓ1范数。
Lasso回归的代价函数 :
J ( θ ) = M E S ( θ ) + α ∑ i = 1 n ∣ θ i ∣ J(\theta ) = MES(\theta )+\alpha \displaystyle\sum_{i=1}^{n}\left | \theta _i\right | J(θ)=MES(θ)+αi=1∑n∣θi∣
【注意 】
- Lasso Regression 的代价函数在
θi=0处是不可导的.
- 解决方法:在θi=0处用⼀个次梯度向量(subgradient vector)代替梯度,如下式
- Lasso Regression 的次梯度向量
Lasso Regression 有⼀个很重要的性质是:倾向于完全消除不重要的权重。
例如:当α 取值相对较⼤时,高阶多项式退化为二次甚至是线性:高阶多项式特征的权重被置为0。
也就是说,Lasso Regression 能够自动
进行特征选择,并输出⼀个稀疏模型(只有少数特征的权重是非零的)。
Elastic Net (弹性网络)
弹性网络在岭回归和Lasso回归中进行了折中,通过 混合比(mix ratio) r
进行控制:
r=0:弹性网络变为岭回归
r=1:弹性网络便为Lasso回归
弹性网络的代价函数 :
J ( θ ) = M E S ( θ ) + r α ∑ i = 1 n ∣ θ i ∣ + 1 − r 2 α ∑ i = 1 n θ i 2 J(\theta ) = MES(\theta )+r\alpha \displaystyle\sum_{i=1}^{n}\left | \theta _i\right | + \frac{\mathrm{1-r}}{\mathrm{2}}\alpha \displaystyle\sum_{i=1}^{n}\theta _i^2 J(θ)=MES(θ)+rαi=1∑n∣θi∣+21−rαi=1∑nθi2
⼀般来说,我们应避免使用朴素线性回归,而应对模型进行⼀定的正则化处理,那如何选择正则化方法呢?
小结:
-
常用:岭回归
-
假设只有少部分特征是有用的:
- 弹性网络
- Lasso
- ⼀般来说,弹性网络的使用更为⼴泛。因为在特征维度高于训练样本数,或者特征是强相关的情况下,Lasso回归的表现不太稳定。
-
api:
from sklearn.linear_model import Ridge, ElasticNet, Lasso
更多推荐
所有评论(0)