首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Lasso模型详析

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 组总预测误差,选择其中最小的,其对应的 λ 值就是我们最终选择的 λ。

关注我们!

我们日后将会推出更多值得学习的统计知识,期待与你们一同进步。

——秦岭统计会

编辑:曹子龙

审稿:赵健衫

文案:任书瑶

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G1YV5M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券