Lasso模型详析
学习素材由:
任书瑶
石静怡
哈雨欣
三位同学提供。
素材整理由:
任书瑶
同学完成。
01
Lasso背景
LASSO是由 1996年 Robert Tibshirani首次提出,全称 Least absolute shrinkage and selection operator。该方法是一种压缩估计。它通过构造一个惩罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。
02
Lasso 具有稀疏解的几何解释:
由 ridge 和 Lasso 的表达式得知,由于惩罚项不同,故约束条件不同。ridge 的约束为圆 形区域,Lasso 的约束为菱形区域。β ̂为最小二乘估计系数,以β^为中心的每个椭圆代 表了某一个 RSS 数值,也就是说,在一个给定的椭圆边界上,每个点所代表的 RSS 是 相同的。随着椭圆与最小二乘系数估计值β ̂越来越远,RSS 逐渐增大,lasso 和岭回归系 数估计值是由其条件区域与椭圆第一次相交决定的。岭回归的条件区域为没有尖点的 圆形,故相交点一般不会出现在坐标轴上,而 lasso 的条件区域为菱形,故椭圆会在 坐标轴上与之相交。因此由几何直观图可以看到,当 Lasso 的约束与最小二乘法的解在 坐标轴处相交时就会造成稀疏解的存在。
03
KKT 条件与 Lasso 解的分析:
一.什么是优化问题下的 KKT 条件:
我们有如下优化问题:
有对应拉格朗日函数:
若满足所谓的KKT条件如下:
则,我们的优化问题可通过拉格朗日函数求出最优解。
二.Lasso 解与优化问题 KKT 解的关系 :
Lasso 方法函数解的表达式 :
其中,一部分为损失函数项,另一部分为惩罚项(包含β先验信息)。
而 Lasso 可以等价为如下具有约束的优化问题 :
那么,通过观察可以发现Lasso 表达式,与我们提出的KKT条件的优化问题一致,所以我们可以通过求满足 6 个 KKT 条件的最优解 x* 来求解 Lasso 的解x。
04
Lasso 中 β 的求解:
首先,我们知最简单的最小二乘问题
这里是数据矩阵,而是响应变量值。
这个问题的最优解为:
然而,如果(数据的维度 p)>(数据点的个数 n),矩阵X' X将不是满秩的,那么这(eq1)是无解的,或者确切说,有无穷多个解。那么,我们的数据不足以确定一 个解,如果我们从所有可行解里随机选一个的话,很可能并不是真正好的解,即 overfitting(过拟合)了。
而这一问题问题的最常用解决办法就是:Regularization(正则化)。
Lasso 正则式L1 Regularization:
不失一般性,考虑orthonormal design(正交设计)的情况:1/n *X’ X=I 。
基于以上假设,我们将求出 Lasso 的解析解。注意到 Lasso 的目标函数(eq2)是 convex(凸)的,根据 KKT 条件,在最优解的地方要求 gradient(梯度)。
但 L1-norm 不是光滑的,即对于(eq2)这一带有绝对值的函数在 0 点奇异,不存在梯 度,所以我们需要引入subgradient(次梯度)的相关概念。
在给定正交设计的假定下,我们的最小二乘问题的解(eq1)的解已经变为如下简单 的形式了:
这里,我们再假定是的全局最优点,考虑第 j 个变量,将分为俩种情况:
(一) gradient 存在,此时。
由于梯度在最小值点必须等于零,所以有:
亦就是:
在根据正交设计的性质以及最小二乘问题的正交设计条件下的解(eq3),化简得:
从这个式子可以明显看出是同号的,于是, 所以上式变为:
再一次使用,俩边同时乘以,可以得到:
刚才的式子进一步写为:
其中,。
(二) gradient 不存在,此时。
根据subgradient在最小值点处的性质,此时存在 ∈ [−1,1],使得,也就是:
所以存在使得:
于是,
又因为,所以这个式子统一到(eq4)里了。那么图解就是如下了:
05
Lasso 中λ值的 K 折交叉验证法:
λ选择的标准为最小化泛化误差,即最小预测误差,其大小可以评定模型在新数据 集上的预测能力,这种能力在机器学习中非常关键。
为了估计泛化误差,我们采用的方法是 K 折交叉验证法。首先先来介绍交叉验证 的基本思想:在某种意义下将原始数据进行分组,一部分作为训练集,另一部分作为 测试集。首先用训练集对模型进行训练,再利用测试集来测试模型的泛化误差。另 外,由于现实生活中数据总是有限的,为了对数据形成重用,从而提出 K 折交叉验 证。
将其应用在 λ 的选择上,具体步骤为:
1)对于 λ 的一个备选集合,先选择 λ1 作为检验对象,此后一系列 操作均以 λ1 为基础。
2)将原始数据集 S 随机分为 K 个部分,即,第一次先将作为测试集,其余集合作为训练集。
3)在训练集上用 λ1 算出估计参数,将其带进测试集中算出拟合值与真实值
之间的预测误差
。
4)之后重复这一操作,仅更换测试集与训练集,直到将 K 组数据集分别都作为测 试集计算出预测误差。
5)将这 K 组预测误差相加,得到 λ1 的总预测误差
。
到这里为止,已经得到 λ1 的泛化误差。接下来的步骤只需要对 λ2 到 λm 进行交叉 验证,得到 m 组总预测误差,选择其中最小的,其对应的 λ 值就是我们最终选择的 λ。
关注我们!
我们日后将会推出更多值得学习的统计知识,期待与你们一同进步。
——秦岭统计会
编辑:曹子龙
审稿:赵健衫
文案:任书瑶
领取专属 10元无门槛券
私享最新 技术干货