UA MATH574M 统计学习V Variable Selection: LASSO
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是对“能选出真实模型、又优良的统计推断性质”这两句话的数学描述,指的是如果我们知道真实模型是什么,我们可以看到哪些性质(以回归问题为例):
- 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
- Estimation Consistency: n(β^A0−βA0)→DN(0,Σ)\sqrt{n} (\hat{\beta}_{A_0} - \beta_{A_0}) \to_D N(0,\Sigma)n(β^A0−βA0)→DN(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)βminL(β,(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)βminL(β,(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|βjmin(β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βminL(β,(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相关推荐
- UA MATH574M 统计学习V Variable Selection简介
UA MATH574M 统计学习V Variable Selection简介 两个基础方法 Ranking Variables Best Subset Algorithm 对基础方法的改进 Gener ...
- UA MATH574M 统计学习 Variable Selection:Cross Validation
UA MATH574M 统计学习 Variable Selection:Cross Validation LOOCV LOOCV score的计算 K-fold CV Generalized CV 故 ...
- UA MATH574M 统计学习I 监督学习理论下
UA MATH574M 统计学习I 监督学习理论下 Hoeffding's inequality 证明 这一讲讨论上一讲结束时提到的监督学习的一致性的概念.假设风险函数 R(f)R(f)R(f)有界, ...
- UA MATH574M 统计学习II 高维数据的二元分类
UA MATH574M 统计学习II 高维数据的二元分类 LDA的直观解释 NSC 上一讲提到了高维数据相比低维数据的特殊性,并介绍了处理高维数据二元分类最简单的一个模型independent rul ...
- UA MATH574M 统计学习II 二元分类例子与高维问题
UA MATH574M 统计学习II 二元分类例子与高维问题 数值例子 高维数据的二分类问题 Independence Rule 数值例子 用模拟数值做一个二分类的例子. library(MASS)# ...
- UA MATH574M 统计学习II 二元分类
UA MATH574M 统计学习II 二元分类基础 基础模型 Bayes分类器 均等成本 不等成本 线性概率模型 线性分类器 线性判别分析(LDA) Logistics回归 基础模型 假设一个二元分类 ...
- UA MATH574M 统计学习I 监督学习理论
UA MATH574M 统计学习I 监督学习理论 统计决策理论 损失函数与风险函数 偏差-方差的权衡 最优估计量 贝叶斯规则 监督学习理论的基本概念 Optimal Learner 经验损失函数与ER ...
- UA MATH566 统计理论 Bayes统计基础
UA MATH566 统计理论 Bayes统计基础 共轭分布 基于后验概率预测新的观测值 Bayes统计思想的基础是Bayes公式 P(Ci∣A)=P(A,Ci)P(A)=P(A∣Ci)P(Ci)∑i ...
- 闲话Variable Selection和Lasso
原文:https://www.wengbi.com/thread_80323_1.html 闲话Variable Selection和Lasso 最近在看变量选择(也叫subset selection ...
最新文章
- BZOJ1747 [Usaco2005 open]Expedition 探险
- 前端那点事儿——Tocify自动生成文档目录
- 用Jquery控制文本框只能输入数字和字母及jquery自定义方法$.fn
- 《HTML 5与CSS 3权威指南(第3版·下册)》——19.4.2 E:enabled伪类选择器与E:disabled伪类选择器...
- mysql范围条件_MySQL 索引及优化实战(一)
- cisco stp技术应用
- ftp无法连接虚拟机_一步步编写操作系统4 安装x86虚拟机 bochs
- wireshark网卡权限_网络分析系列之六_Wireshark安装
- Python-基础学习笔记
- Linux学习笔记(详细)
- DreamweaverCS6破解安装
- ¶àÀAÃεĴó½á¾Ö
- POE交换机供电知识
- 【戒焦戒躁,can win】Linux--IO文件描述符
- B端产品客户画像的一点感悟
- 用K-Means算法处理wine数据集和wine_quality数据集
- 征战星辰大海,从这里开始
- python白月黑羽视频多线程笔记
- Type-C边充电边OTG转接器方案
- 金融反欺诈模型----项目实战--机器学习