数据分析师应该知道的16种回归技术:岭回归

2018 年 8 月 11 日 数萃大数据

岭回归可以看成是最小二乘回归的一种补充,通过牺牲最小二乘的无偏性换取数值的稳定性。学习岭回归之前了解下正则化是很有必要的。


在线性回归中,有时模型可以很好拟合训练集而不能有效反映测试集的特征,称这种现象为过拟合。对过拟合问题,可通过正则化解决,它在目标函数中添加惩罚项,利用惩罚项控制模型复杂度。


一般来说,数据出现下列情形,考虑使用正则化方法

  • 变量非常多

  • 样本数远小于变量数

  • 较高的多重共线性


惩罚项是在目标函数中添加的对回归系数的约束项。根据惩罚项的不同,正则化分为L1正则化和L2正则化。L1正则化添加的惩罚项为系数的绝对值之和,L2正则化添加的惩罚项为系数平方和,它们分别对应岭回归和Lasso回归。另外还有一种介于L1和L2正则化之间的方法,称为弹性网络回归。本文主要讲岭回归,后续会分享Lasso和弹性网络回归的内容。


线性回归通过最小化误差平方和获得回归系数的估计值,岭回归是通过添加L2损失函数(系数平方和)对回归系数进行限制,此时的目标函数为:

上式的叫做正则化参数,用来控制惩罚项对回归系数收缩度。

解目标函数,得到的估计为:

同线性回归相比,岭回归的优势:

  • 不管是否正定,总存在使得正定,即对任意数据集,岭回归总存在唯一解

  • 总存在使


最后一个问题是正则参数的选取,如果,岭回归会退化为线性回归,若特别大,自变量对估计值的影响减弱,模型欠拟合。因此,的选取对岭回归至关重要,一种比较简单的方法是,绘制参数在不同下的曲线,挑选使所有参数趋于平稳的最小。另外我们也可以使用AIC和BIC来选择


案例

下面考虑datasets包中的swiss数据集,该数据集描述瑞士47个法语地区的生育率和5个社会指标之间的关系。

R中的glmnet包提供了进行岭回归的函数cv.glmnet,函数中的参数alpha=0(默认)对应岭回归,alpha=1对应lasso回归,alpha在0,1之间对应松弛网络回归。另一个有用逻辑参数keep(默认FALSE)控制是否保存每个lambda下回归系数的估计值。

利用岭回归拟合swiss数据集

  
  
    
  1. X <- swiss[,-1]

  2. y <- swiss[,1]

  3. library(glmnet)

  4. model <- cv.glmnet(as.matrix(X),y,alpha = 0,keep=T,

  5.                   lambda = 10^seq(4,-1,-0.1))

  6. best_lambda <- model$lambda.min

  7. ridge_coeff <- predict(model,s = best_lambda,

  8.                       type = "coefficients")

  9. ridge_coeff

绘制不同lambda下回归系数及模型MSE,图中灰色虚线对应最优lambda值。

  
  
    
  1. op=par(mfrow=c(1,2))

  2. plot(model)

  3. hatbeta <- as.matrix(model$glmnet.fit$beta)

  4. loglambda = log(10^seq(4,-1,-0.1))

  5. plot(1,type = 'n',xlim = c(-2.4,9.3),ylim = c(-0.85,1.1),

  6.     xlab = 'log(lambda)',ylab = 'coefficients')

  7. colrs = RColorBrewer::brewer.pal(5,"Set1")

  8. for (i in 1:5) {

  9.  lines(loglambda,hatbeta[i,],col=colrs[i],lwd=2)

  10. }

  11. abline(v=log(best_lambda),lty=3,lwd=3,col='gray30')

  12. legend('topright',rownames(hatbeta),lty = 1,lwd=2,

  13.       col=colrs,bty = 'n',cex = 0.75)

  14. par(op)


推荐阅读

数据分析师应该知道的16种回归技术:分位数回归

数据分析师应该知道的16种回归技术:KNN回归

从零开始深度学习第6讲:神经网络优化算法之从SGD到Adam

从零开始深度学习第7讲:Tensorflow入门

谈谈大数据的那点事(5) ——《新媒体将会成为大数据研究的重要领域》


长按二维码关注“数萃大数据”

登录查看更多
15

相关内容

专知会员服务
139+阅读 · 2020年5月19日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
195+阅读 · 2020年5月2日
自回归模型:PixelCNN
专知会员服务
26+阅读 · 2020年3月21日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
202+阅读 · 2020年2月24日
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
博客 | 回归类算法最全综述及逻辑回归重点讲解
AI研习社
13+阅读 · 2018年11月29日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:弹性网络回归
数萃大数据
91+阅读 · 2018年8月16日
数据分析师应该知道的16种回归技术:分位数回归
数萃大数据
29+阅读 · 2018年8月8日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
Arxiv
22+阅读 · 2019年11月24日
Image Captioning: Transforming Objects into Words
Arxiv
7+阅读 · 2019年6月14日
Arxiv
6+阅读 · 2018年10月3日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
VIP会员
相关VIP内容
专知会员服务
139+阅读 · 2020年5月19日
【经典书】机器学习高斯过程,266页pdf
专知会员服务
195+阅读 · 2020年5月2日
自回归模型:PixelCNN
专知会员服务
26+阅读 · 2020年3月21日
【干货书】机器学习Python实战教程,366页pdf
专知会员服务
340+阅读 · 2020年3月17日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
202+阅读 · 2020年2月24日
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
sklearn 与分类算法
人工智能头条
7+阅读 · 2019年3月12日
博客 | 回归类算法最全综述及逻辑回归重点讲解
AI研习社
13+阅读 · 2018年11月29日
数据分析师应该知道的16种回归方法:负二项回归
数萃大数据
74+阅读 · 2018年9月16日
数据分析师应该知道的16种回归技术:弹性网络回归
数萃大数据
91+阅读 · 2018年8月16日
数据分析师应该知道的16种回归技术:分位数回归
数萃大数据
29+阅读 · 2018年8月8日
机器学习者都应该知道的五种损失函数!
数盟
5+阅读 · 2018年6月21日
Top
微信扫码咨询专知VIP会员