UA MATH574M 统计学习V Variable Selection: LASSO

  • 基本概念
    • Oracle Property
    • Penalized Regularization Framework
  • LASSO
    • LASSO的系数估计
    • Soft Thresholding
    • 选择λ\lambdaλ或者ttt的方法

这一讲介绍变量选择的现代方法:LASSO。以及LASSO所属的方法:shrinkage method或者regularization techniques。先定义一些符号:{(Xi,Yi)}i=1n\{(X_i,Y_i)\}_{i=1}^n{(Xi​,Yi​)}i=1n​是数据集,Xi∈RdX_i\in \mathbb{R}^dXi​∈Rd,ddd的含义是predictor的数目,假设这些数目的index set为S={1,2,⋯,d}S=\{1,2,\cdots,d\}S={1,2,⋯,d},用某种算法选择的index subset记为AAA。如果用线性模型来fit这些数据,假设系数为β\betaβ,真实系数为β0\beta_0β0​,真实模型的index set为A0A_0A0​。与经典方法不同的是,现代方法通常要把XiX_iXi​的均值标准化为0,方差标准化为1,把YiY_iYi​的均值标准化为0。之所以要做标准化是因为现代方法要用penalty,penalty需要计算系数的范数,因此要尽量保证不同变量的系数有一样的scale,不然如果某个变量系数太大相当于penalty都施加给它了,相当于scale也被考虑进模型了。

经典方法最主要的缺陷是没有理论支撑以及有可能收敛到局部最优,并且高度依赖数据而不是特征本身。现代方法则更加稳定、有理论支撑并且可以收敛到全局最优,计算速度同样很快。

基本概念

变量选择的理想结果是:能选出真实模型(保留所有重要变量,剔除所有噪声)、有优良的统计推断性质(一致性、渐进有效等)。称A0A_0A0​为important index set,A0CA_0^CA0C​为unimportant index set。

Oracle Property

Oracle property是对“能选出真实模型、又优良的统计推断性质”这两句话的数学描述,指的是如果我们知道真实模型是什么,我们可以看到哪些性质(以回归问题为例):

  1. Selection Consistency: βj=0,∀j∈A0C\beta_j=0,\forall j \in A_0^Cβj​=0,∀j∈A0C​,βj≠0,∀j∈A0\beta_j\ne 0,\forall j \in A_0βj​​=0,∀j∈A0​
  2. Estimation Consistency: n(β^A0−βA0)→DN(0,Σ)\sqrt{n} (\hat{\beta}_{A_0} - \beta_{A_0}) \to_D N(0,\Sigma)n​(β^​A0​​−βA0​​)→D​N(0,Σ),Σ\SigmaΣ叫渐进方差,Σ=I−1\Sigma=I^{-1}Σ=I−1,III为Fisher信息阵。

Penalized Regularization Framework

Penalized Regularization Framework可以写成:
min⁡βL(β,(X,Y))+λJ(β)\min_{\beta} L(\beta,(X,Y)) + \lambda J(\beta)βmin​L(β,(X,Y))+λJ(β)
其中L(β,(X,Y))L(\beta,(X,Y))L(β,(X,Y))是损失函数,假设这个监督学习是Y=f(X,β)Y=f(X,\beta)Y=f(X,β),损失函数就是
L(Y,f(X,β))L(Y,f(X,\beta))L(Y,f(X,β))
J(β)J(\beta)J(β)叫penalty function或者regularization term,通常使用LqL_qLq​-penalty:
Jq(β)=∣∣β∣∣qq=∑j=1d∣βj∣qJ_q(\beta) = ||\beta||_q^q = \sum_{j=1}^d |\beta_j|^qJq​(β)=∣∣β∣∣qq​=j=1∑d​∣βj​∣q
直接贴我老师的ppt:


这几张小图是{β:Jq(β)=1}\{\beta:J_q(\beta)=1\}{β:Jq​(β)=1}的图,注意他们的特点,q≥1q \ge 1q≥1时,{β:Jq(β)≤1}\{\beta:J_q(\beta)\le1\}{β:Jq​(β)≤1}都是凸集,q<1q<1q<1的时候{β:Jq(β)≤1}\{\beta:J_q(\beta)\le1\}{β:Jq​(β)≤1}不是凸集,因此估计系数的时候q≥1q\ge 1q≥1的regularization可以用凸优化来做。另外q≤1q \le 1q≤1时,{β:Jq(β)≤1}\{\beta:J_q(\beta)\le1\}{β:Jq​(β)≤1}的四个角都是不可微的,一般称这种点叫corner point,用这些regularization优化的时候可能出现sparse solution(即存在系数为0的特征),因此可以用来做variable selection。

LASSO

在Penalized Regularization Framework中
min⁡βL(β,(X,Y))+λJ(β)\min_{\beta} L(\beta,(X,Y)) + \lambda J(\beta)βmin​L(β,(X,Y))+λJ(β)
如果
J(β)=∑j=1d∣β∣jJ(\beta) = \sum_{j=1}^d |\beta|_jJ(β)=j=1∑d​∣β∣j​
这个模型成为LASSO。其中λ>0\lambda>0λ>0是一个tuning parameter,它决定amount of shrinkage,这里的shrinkage指的是系数有多sparse,λ\lambdaλ越大,amount of shrinkage就会越大,系数就会更sparse(系数为0的特征就越多)。如果λ=0\lambda=0λ=0,模型就成了一般的监督学习问题;如果λ→∞\lambda \to \inftyλ→∞,所有的系数都被shrink
to zero。

LASSO的系数估计

考虑用LASSO penalty的线性回归:
min⁡β(Y−Xβ)2+λ∑j=1d∣β∣j\min_{\beta} (Y-X\beta)^2 + \lambda \sum_{j=1}^d |\beta|_jβmin​(Y−Xβ)2+λj=1∑d​∣β∣j​
在这个目标函数中,regularization角点处不可微,所以没法用Newton类的方法来做。可以把这个优化转化为
min⁡β(Y−Xβ)2s.t.∑j=1d∣β∣j≤t\min_{\beta} (Y-X\beta)^2 \\ s.t. \sum_{j=1}^d |\beta|_j \le tβmin​(Y−Xβ)2s.t.j=1∑d​∣β∣j​≤t
可以用KKT证明这两个优化是等价的。从数值计算的角度,上面这个优化可以用barrier来做,也可以用quadratic programming,但最优秀的方法是LARS(least angle regression,最小角回归),下一讲讨论LARS。

先从几何上理解一下LASSO:

这个图就是Tibshirani (1996)的Fig 2,红色的level curve是quadratic loss的level curve,蓝色的是满足约束的可行域 (可行域大小由ttt决定,ttt越大可行域越大)。左边这个是LASSO,最优解是角点解,β1=0\beta_1=0β1​=0,对应的特征就被筛除了;右边这个是ridge regression,它相当于只是对β1\beta_1β1​做了一个shrinkage,并没有筛除对应的特征。

Soft Thresholding

考虑设计矩阵正交的线性回归,y=Xβ+ϵ,XTX=Iy=X\beta + \epsilon,X^TX = Iy=Xβ+ϵ,XTX=I
这个回归等价于
y=Xjβj+ϵ,j=1,2,⋯,py = X_j \beta_j + \epsilon, j = 1,2,\cdots,py=Xj​βj​+ϵ,j=1,2,⋯,p
这个设定下引入LASSO,最优化问题等价于
min⁡βj(βj−β^jOLS)+λ∣βj∣\min_{\beta_j} (\beta_j - \hat{\beta}_j^{OLS}) + \lambda|\beta_j|βj​min​(βj​−β^​jOLS​)+λ∣βj​∣
这个最优化的解是
β^jLASSO=sgn(β^j)(∣β^jOLS∣−λ2)+\hat{\beta}_j^{LASSO} = sgn(\hat{\beta}_j)(|\hat{\beta}_j^{OLS}|-\frac{\lambda}{2})_+β^​jLASSO​=sgn(β^​j​)(∣β^​jOLS​∣−2λ​)+​
因此当∣β^jOLS∣≤λ2|\hat{\beta}_j^{OLS}| \le \frac{\lambda}{2}∣β^​jOLS​∣≤2λ​时,被shrink为0。下面这个slides是正交设计矩阵下OLS、LASSO与Ridge regression的估计量对比,Ridge和LASSO都是bias estimation。这些比较可以参考Tibshirani (1996)的subsection 2.2与2.3。

选择λ\lambdaλ或者ttt的方法

在下面这个模型中,需要选择的超参是λ\lambdaλ
min⁡βL(β,(X,Y))+λ∑j=1d∣β∣j\min_{\beta} L(\beta,(X,Y)) + \lambda \sum_{j=1}^d |\beta|_jβmin​L(β,(X,Y))+λj=1∑d​∣β∣j​
在其等价模型中,需要选择的超参是ttt
min⁡β(Y−Xβ)2s.t.∑j=1d∣β∣j≤t\min_{\beta} (Y-X\beta)^2 \\ s.t. \sum_{j=1}^d |\beta|_j \le tβmin​(Y−Xβ)2s.t.j=1∑d​∣β∣j​≤t
常用的tuning方法有:

基本原则是如果数据多,那就除了测试集、训练集之外再分一个tuning set出来,最小化tuning error来调参;如果数据没那么多,那就做cross validation(最常用)。最后才考虑AIC和BIC,一般只有在想得到非常sparse的模型的时候才考虑BIC。下下讲讨论Tuning methods。

UA MATH574M 统计学习V Variable Selection: LASSO相关推荐

  1. UA MATH574M 统计学习V Variable Selection简介

    UA MATH574M 统计学习V Variable Selection简介 两个基础方法 Ranking Variables Best Subset Algorithm 对基础方法的改进 Gener ...

  2. UA MATH574M 统计学习 Variable Selection:Cross Validation

    UA MATH574M 统计学习 Variable Selection:Cross Validation LOOCV LOOCV score的计算 K-fold CV Generalized CV 故 ...

  3. UA MATH574M 统计学习I 监督学习理论下

    UA MATH574M 统计学习I 监督学习理论下 Hoeffding's inequality 证明 这一讲讨论上一讲结束时提到的监督学习的一致性的概念.假设风险函数 R(f)R(f)R(f)有界, ...

  4. UA MATH574M 统计学习II 高维数据的二元分类

    UA MATH574M 统计学习II 高维数据的二元分类 LDA的直观解释 NSC 上一讲提到了高维数据相比低维数据的特殊性,并介绍了处理高维数据二元分类最简单的一个模型independent rul ...

  5. UA MATH574M 统计学习II 二元分类例子与高维问题

    UA MATH574M 统计学习II 二元分类例子与高维问题 数值例子 高维数据的二分类问题 Independence Rule 数值例子 用模拟数值做一个二分类的例子. library(MASS)# ...

  6. UA MATH574M 统计学习II 二元分类

    UA MATH574M 统计学习II 二元分类基础 基础模型 Bayes分类器 均等成本 不等成本 线性概率模型 线性分类器 线性判别分析(LDA) Logistics回归 基础模型 假设一个二元分类 ...

  7. UA MATH574M 统计学习I 监督学习理论

    UA MATH574M 统计学习I 监督学习理论 统计决策理论 损失函数与风险函数 偏差-方差的权衡 最优估计量 贝叶斯规则 监督学习理论的基本概念 Optimal Learner 经验损失函数与ER ...

  8. UA MATH566 统计理论 Bayes统计基础

    UA MATH566 统计理论 Bayes统计基础 共轭分布 基于后验概率预测新的观测值 Bayes统计思想的基础是Bayes公式 P(Ci∣A)=P(A,Ci)P(A)=P(A∣Ci)P(Ci)∑i ...

  9. 闲话Variable Selection和Lasso

    原文:https://www.wengbi.com/thread_80323_1.html 闲话Variable Selection和Lasso 最近在看变量选择(也叫subset selection ...

最新文章

  1. BZOJ1747 [Usaco2005 open]Expedition 探险
  2. 前端那点事儿——Tocify自动生成文档目录
  3. 用Jquery控制文本框只能输入数字和字母及jquery自定义方法$.fn
  4. 《HTML 5与CSS 3权威指南(第3版·下册)》——19.4.2 E:enabled伪类选择器与E:disabled伪类选择器...
  5. mysql范围条件_MySQL 索引及优化实战(一)
  6. cisco stp技术应用
  7. ftp无法连接虚拟机_一步步编写操作系统4 安装x86虚拟机 bochs
  8. wireshark网卡权限_网络分析系列之六_Wireshark安装
  9. Python-基础学习笔记
  10. Linux学习笔记(详细)
  11. DreamweaverCS6破解安装
  12. ¶àÀ­AÃεĴó½á¾Ö
  13. POE交换机供电知识
  14. 【戒焦戒躁,can win】Linux--IO文件描述符
  15. B端产品客户画像的一点感悟
  16. 用K-Means算法处理wine数据集和wine_quality数据集
  17. 征战星辰大海,从这里开始
  18. python白月黑羽视频多线程笔记
  19. Type-C边充电边OTG转接器方案
  20. 金融反欺诈模型----项目实战--机器学习

热门文章

  1. 如何复制一个含有随机指针节点的链表
  2. Request —— 获取请求行数据 获取请求头数据 获取请求体数据
  3. Java 技术篇-用java自带的内存检测工具排查内存泄漏问题,查看java垃圾回收情况,监控java堆内存变化
  4. C语言实现测量数据处理,求出实际值的范围
  5. 湫湫系列故事——消灭兔子
  6. C# 学习笔记(16)ComboBox下拉列表框宽度自适应
  7. mktime函数实现获取当前系统时间
  8. C++ 类的保护继承与构造函数
  9. Reverse Linked List
  10. flask-bootstrap-高亮-下划线-删除线-加粗-斜体