lasso 详介

17 篇文章 2 订阅


lasso的今世前身

引言
年关将至,少不了写年终总结。自己也绞尽脑汁对研读的统计文献做一个总结。我们来聊聊20年前诞生的lasso。lasso理论文章由统计学家Tibshirani, R在于1996年提出,并获得了里程碑式的影响。简单概述,lasso的目的就是选择合适的自变量。茫茫变量中怎么遇见合适的它。
这里写图片描述

此处说明下我们为什么要进行选变量这个动作?
-变量维数多并且变量之间存在相关关系,所以剔除不重要的变量,选择合适的变量成为了统计学习里面的一个重点。

传统选变量方法

(1). Cp统计量
数学公式为:Cp=RSSqδ2(n2q)

(2). AIC准则
数学公式为:AIC=nln(RSSq)+2q

(3).BIC准则
数学公式:BIC=2ln(RSSq)+ln(n)k

其中RSSq是在该模型下的残差平方和,q是模型的变量个数。
R语言中有AIC,BIC函数。

lm1 <- lm(Fertility ~ . , data = swiss)
lm2 <- update(lm1, . ~ . -Examination)
AIC(lm1, lm2)
BIC(lm1, lm2)
 
 
  • 1
  • 2
  • 3
  • 4

注意这些规则只是刻画了用某个模型之后相对“真实模型”的信息损失【因为不知道真正的模型是什么样子,所以训练得到的所有模型都只是真实模型的一个近似模型】。

这些规则理论上是比较漂亮的,但是实际在模型选择中应用起来还是有些困难的,
(1).茫茫变量中这种枚举的方式,计算量太大,典型的NP问题。
(2).通过这种离散的方式选择变量,模型并不稳定。即数据有许变化,模型就会有所改变。
所以上述方法更适合于模型之间的比较。

岭估计

针对变量之间存在相关性,引入岭的概念,使得XTX的均逆可得,避免病态矩阵的情况。

这里写图片描述

这有效避免了逆的问题,但是岭估计是在全体集合上进行计算,不能选择合适的子集。
在高维统计中,基于岭的惩罚会存在大量的非0变量,而且相对于其他估计方法系数偏小。
R语言中岭估计调用的函数:

lm.ridge(y ~ ., longley) 
plot(lm.ridge(y ~ ., longley, lambda = seq(0,0.1,0.001)))
 
 
  • 1
  • 2

非负代理(Non-negative Garrote)

追溯到1993年,Breiman, L老先生提出了Non-negative Garrote方法进行选择更好的子集。这是lasso的前身。

这里写图片描述

解释:给予变量系数一定的权重,但是对于权重的和有约束。

lasso(least absolute shrinkage and selection operato)

96年Tibshirani, R在Non-negative Garrote方法的基础上,直接对于变量的系数进行L1正则化。

这里写图片描述

t 值越小,变量收缩越大,部分变量系数变成0。所以lasso具有重要的稀疏性质

这里写图片描述

图片展示了p=2情况下,岭估计和lasso估计的几何图解。图中我们可以发现lasso估计的置信椭球和约束菱形的交点在坐标轴上,说明另一变量系数可以为0,而岭估计交点不会出现在坐标轴上。

根据 Lagrangian对偶方法,我们将上面的函数形式转化为:

这里写图片描述

所以lasso问题是一个非线性、不可微函数优化问题,求解过程不容易。

lasso求解

FU(1998)提出shooting优化算法。Lagrangian对偶问题可以对满足KKT条件的问题用导数形式进行求解。 针对xj求导:

2xpj)

所以左式是βj的分段函数。

这里写图片描述

由图可知左式截距在-λ]两端有解。

那么βj的解为:
这里写图片描述

此处S0循环,循环多次直至所有变量系数收敛。
这种方法其实就是我们在处理类似lasso及其广义lasso中常用的坐标下降算法。P. TSENG在论文中证明了其中的收敛性问题。2007年Jerome Friedman在论文中将归纳坐标下降算法在lasso、elastic net、group lasso等广义lasso中的运用情况,给出了相应的解析解表达形式。

lasso:
这里写图片描述
elastic net:

这里写图片描述

S在这里是一个软阀值算子。

这里写图片描述
其中这里的变量x。每个变量迭代算法如同上述表示,p个变量均不断循环遍历直至均收敛。

2010年Jerome Friedman的文章中拓展了2007年的工作,针对高维广义线性模型提出了更加快捷的算法,并提供了R包glmnet
这里只介绍迭代过程中的小技巧。针对表达形式中的1NNi=1xij(yiy^ji),文章中提供了两种迭代方法。

1、原始迭代方法:
这里写图片描述
y^i观测值模型拟合值,利用现在模型的残差进行下一次迭代的计算。

2、协方差迭代:
这里写图片描述

利用内积的方式进行计算,我们需要计算每个变量与y改变时,我们进行一次迭代运算。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值