1.1.3. Lasso(套索回归)

article/2025/9/28 22:25:43

1.1.3. Lasso

一、简介

在这里插入图片描述

首先,Lasso同样是线性回归的一种变体。而文档中指出,它是一种能让参数 ω \omega ω稀疏的模型(作用)。它是压缩感知领域的基础(地位),在特定情况下,它可以“恢复一组非零权重的精确集”(这句话来自别人的翻译,我暂时还不明白)。

二、损失函数特性

在Ridge Regression中,我们介绍了正则项(惩罚项)。Lasso和Ridge模型上的差别也主要体现在损失函数中不同的正则项上。

首先,在Ridge中,为了约束参数 ω \omega ω,我们给损失函数添上了关于 ω \omega ω l 2 − n o r m l_2-norm l2norm(L2范数)。二范数,决定了他在限制参数 ω \omega ω的同时,也会尽可能保留每一个参数。这是它的优势,可以尽可能的保留信息,但是,在遇到特征数目很多时,他也会因为模型过于复杂而受限。

而在Lasso中,我们用 ω \omega ω l 1 − n o r m l_1-norm l1norm(L1范数)来有意的让特征稀疏化(这是L1范数的特性),从而简化模型的复杂度,或者在特征数(维数)远大于样本数时使用。

其次,我们注意到,Lasso的损失函数MSE部分乘上了系数 1 / 2 ∗ n s a m p l e 1/2*n_{sample} 1/2nsample。这似乎有两个作用:

  1. 系数对MSE做了归一化,使得我们能够更好的比较不同模型之间的性能。(事实上,在求解单个模型的过程中,我们并不在意loss函数具体的值,我们只care变量在哪一点取最小值。)
  2. 对比MSE和正则项的比例,我们发现,当样本数目 n s a m p l e n_{sample} nsample越大时,正则项对损失函数的影响也就越大。(这也很好理解,因为样本数目越多时,我们越希望求得的参数稀疏,从而给模型带来更好的性能。)

三、求解Lasso模型

因为Lasso模型的损失函数中带有L1范数,所以它并不是处处可导的,我们也就不能采用常规的梯度下降法。

我所知的有三种求解Lasso模型的算法。

3.1坐标梯度下降

坐标梯度下降(coordinate descent)是sklearn求解Lasso的一种方法。

相比于常规的梯度下降(每个梯度都是各个维度的线性组合),坐标梯度下降法只沿着平行于坐标轴进行迭代。其步骤大致如下:

  1. 初始化一个点
  2. 对这个点的四周(平行于坐标轴的方向)求偏导(这个不会收到L1范数范数的影响)
  3. 选择一个偏导最大的方向,并沿着其反方向下降。(这和梯度下降几乎一样)
  4. 重复2、3步骤直到达到极小值或最小值(当然实际过程中也有可能是别的什么点)

3.2最小角回归LARs

最小角回归是综合了“前向选择”和“前向梯度”的一种优化算法,它通过两种方式减少了迭代次数.。(它也是sklearn中给出的方法)

  • 在每个方向上只迭代一次(通过设置条件而终止当前的迭代)
  • 对不同特征进行线性组合

那么它做了一件什么事,终止迭代的步骤又是啥

首先,它根据维度划分出n个向量(n个维度),其中每个维度的向量由不同样本(共m个)在该维度的值组成
其次,每一步迭代,它计算不同维度的向量与标签Y的夹角(cos),并选择最小的一个作为当前迭代的方向。
当前迭代的终止条件是:遇到另一个向量与现在的方向到残差的夹角相等。
然后我们沿着这两个向量的“角平分线”继续前进(迭代),知道遇到另一个向量到残差的夹角与当前方向到残差的距离相等。

具体的推导和部分可视化大家可以参照刘建平大佬写的博客

3.3近端梯度下降

近端梯度下降(Proximal Gradient Descent)是西瓜书里给出的对Lasso的求解,里面用到了泰勒的二级展开和部分软阈值函数。

我们的目标函数分为可微的“损失函数”和不可微的“正则项”。

在近端梯度下降中,我们对不可微的“正则项”对处理反而很简单,那就是用软阈值函数来表示它的导数。(在 l 1 l_1 l1范数上的体现就是去绝对值然后分段求导,是不是非常的简单粗暴)

然而对于“损失函数”,常规情况下,我们的做法是对其求一阶导,然后将导数和学习率的乘积作为我们每次迭代的方向和步长。

但是在这里,我们通过泰勒公式对“损失函数”进行二阶展开,并用近端算子将二阶导近似为常数(建议:如果不是数学系的没必要深究近端算子的含义,只需要知道它是个不等式),所以最后我们的“损失函数”可以整理成为一个二次函数

在该二次函数(“损失函数”在当前点 x k x_k xk的附近的近似值)中,其最小值,可视为下次迭代的目标 x k + 1 x_{k+1} xk+1。当然啦,在这里,我们先将其记为 z k + 1 z_{k+1} zk+1,毕竟它只是个中间变量。整个目标函数的迭代目标应该 x k + 1 x_{k+1} xk+1是将 z k + 1 z_{k+1} zk+1带入到我们之前说的“软阈值函数”所得的函数值。

这部分推导比较难理解,有兴趣的同学可以参考一下西瓜书11章第4小结。

四、设置正则参数

4.1交叉验证与算法对比

在这里插入图片描述

首先,和Ridge一样,Lasso调整正则参数 α \alpha α的方式也是交叉验证。

但对于LassoCVLassoLarsCV(其中LassoCV基于坐标梯度下降/LassoLarsCV基于最小角回归),它们在不同数据集上的性能并不同。

  • LassoCV在高维数据上更占优势
  • LassoLarsCV能探索更多相关的 alpha 参数值(精确、有路径)
  • 如果样本数量与特征数量相比非常小时,通常 LassoLarsCV 比 LassoCV 要快。

4.2信息准则

在这里插入图片描述

当我第一次看到sklearn上这段话的时候,我是完全没理解的。毕竟按照正统的机器学习路径,可能不太会接触到“信息准则”这类东西。不过,在老师和同学的帮助下,我还是大概了解到它想表达的内容。

核心思想是:

k折交叉验证太麻烦了,每次要把模型跑k+1遍。虽然这种“实践”更容易出“真知”,但损耗实在是太大了。

这种时候,人们考虑到根据“信息论”,找出一种可以衡量模型的性能的指标,这种指标可以根据较少的数据来判断模型整体的性能,而不是说把数据划分成k份跑很多次。

根据概率论,这种指标显而易见,叫“似然”。我们假设有一种最优的模型,然后我们试图通过模型的“似然”来估计当前模型与最有模型的差异,并根据不同的信息准则加上不同的惩罚项。

具体公式如下:

  • AIC 赤池信息准则 2 k − l n ( L ) 2k-ln(L) 2kln(L)
  • BIC 贝叶斯信息准则 k l n ( N ) − l n ( L ) kln(N)-ln(L) kln(N)ln(L)

其中:

  1. L代表似然,有具体的定义,这里就不展开了
  2. k代表参数个数,反应了模型复杂度
  3. N代表样本个数,进一步反应了模型复杂度

4.3与SVM的对比

在这里插入图片描述

alpha 和 SVM的正则化参数C 之间的等式关系是 α = 1 / C \alpha = 1 / C α=1/C 或者 α = 1 / ( n s a m p l e s ∗ C ) \alpha = 1 / (n_{samples} * C) α=1/(nsamplesC) ,并依赖于估计器和模型优化的确切的目标函数。


http://chatgpt.dhexx.cn/article/j6SQbWMg.shtml

相关文章

【机器学习】Lasso模型

一、引言 1.1 高维数据 何谓高维数据?高维数据指数据的维度很高,甚至远大于样本量的个数。高维数据的明显的表现是:在空间中数据是非常稀疏的,与空间的维数相比样本量总是显得非常少。 在分析高维数据过程中碰到最大的问题就是维…

多元线性回归-Lasso

目录 1.Lasso与多重共线性 2. Lasso的核心作用:特征选择 3. 选取最佳的正则化参数取值 1.Lasso与多重共线性 Lasso全称最小绝对收缩和选择算子(Least absolute shrinkage and selection operator),由于这个名称过于复杂所以简称为Lasso,和…

Lasso线性回归学习笔记(公式与代码实现)

目录 Lasso线性回归学习笔记(公式与代码实现)1 为什么要在线性回归中引入正则化项(简介)2 常见正则化项3 损失函数图像与正则化之后的图像3.1损失函数图像3.2 加了 L~1~ 正则项之后的损失函数图像 4 L~1~ 范数正则化的解中有更多零…

机器学习算法系列(五)- Lasso回归算法(Lasso Regression Algorithm)

阅读本文需要的背景知识点:线性回归算法、一丢丢编程知识 最近笔者做了一个基于人工智能实现音乐转谱和人声分离功能的在线应用——反谱(Serocs),感兴趣的读者欢迎试用与分享,感谢您的支持!serocs.cn 一、…

学习机器学习和深度学习的方法和步骤

学习机器学习和深度学习的方法和步骤 相信很多人都在找学习机器学习和深度学习的步骤和教程。作为过来人和大家一起交流一下。 我自己制作的一个思维导图希望对大家有帮助。

机器学习算法介绍

前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注,但是这家公司真正的未来在于机器学习,一种让计算机更聪明、更个性化的技术。 也许我们生活在人类历史上最关键的时期:从使用大型计算机&#xf…

机器学习之【提升方法】

机器学习【提升方法】 一、Adaboost的起源1.强可学习与弱可学习 二、怎样实现弱学习转为强学习1.怎样获得不同的弱分类器?BaggingBagging的弊端 2.怎样组合弱分类器? 三、Adaboost的提出四、Adaboost的基本概念五、Adaboost算法六、示例七、Boosting illustration 一、Adaboo…

(四)机器学习方法的分类

文章目录 一、监督学习二、非监督学习三、半监督学习四、增强学习五、机器学习的其他分类1. 批量学习(Batch Learning)2. 在线学习(Online Learning)3. 参数学习(Parametric Learning)4. 非参数学习 在上一…

【机器学习】之机器学习方法的分类

1,监督学习 给机器的训练数据拥有标记和答案 例如: 图像已经积累了标定信息银行已经积累了客户的信息和信用卡的信息 2,非监督学习 给机器的训练数据没有标记或答案 对没有标记的数据进行分类 – 聚类分析 对数据进行降维处理 特征提取…

机器学习常用方法

在本篇文章中,我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇,从这里开始,必须对机器学习了解才能进一步介绍EasyPR的内核。…

机器学习的几种学习方式

根据数据类型的不同,对一个问题的建模有不同的方式,人们首先会考虑算法的学习方式。将算法按照学习方式分类可以让人们在建模和算法选择时,根据输入数据来选择最合适的算法,从而获得最好的结果。 在机器学习领域,有以…

机器学习--机器学习的基本方法

文章目录 1.1统计分析1.1.1 统计基础1.1.2 常见的概率分布2.1.3参数估计1.1.4 假设与检验1.1.5线性回归1.1.6逻辑回归1.1.7判别分析1.1.8 非线性判决 1.1统计分析 统计学是研究如何收集资料,整理资料和进行量化分析,判断的一门学科。在科学计算&#xf…

机器学习的四种学习方法

文章目录 监督学习(Supervised Learning)无监督学习(Unsupervised Learning)半监督学习(Semi-supervised Learning)强化学习(Reinforcement Learning)应用 监督学习(Supervised Learning&#x…

机器学习方法的基本分类

目录 1、监督学习(supervised learning) 2、无监督学习(unsupervised learning) 3、强化学习(reinforcement learning) 4、半监督学习(semi-supervised learning)与主动学习&…

机器学习的常用方法

转自 史上最强----机器学习经典总结---入门必读----心血总结-----回味无穷 在这个部分我会简要介绍一下机器学习中的经典代表方法。这部分介绍的重点是这些方法内涵的思想,数学与实践细节不会在这讨论。 1、回归算法 在大部分机器学习课程中,回归算法都…

机器学习的三种方法

目录 介绍 鸢尾花(Iris)数据集 梯度下降 逻辑回归 使用逻辑回归处理鸢尾花(Iris)数据集 反向传播 使用反向传播处理鸢尾花(Iris)数据集 支持向量机 用支持向量机处理鸢尾花(Iris)数据集 结论 下载Iris_Data-3.7 KB下载LogiticRegression_Iris-309.7 KB下载LogiticReg…

机器学习的方法

机器学习(machine learning)是一门多领域交叉学科,涉及了概率论、统计学、算法复杂度等多门学科。专门研究计算机怎样模拟或实现人的学习行为,它能够发现和挖掘数据所包含的潜在价值。机器学习已经成为了人工智能的一个分支,通过自学习算法,发现和挖掘数据潜在的规律,从…

机器学习中常见4种学习方法、13种算法

机器学习中常见4种学习方法、13种算法 一. 4大主要学习方法 1.1 监督式学习 在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中…

机器学习的13种算法和4种学习方法,推荐给大家

机器学习的算法很多。很多时候困惑人们都是,很多算法是一类算法,而有些算法又是从其他算法中延伸出来的。这里,我们从两个方面来给大家介绍,第一个方面是学习的方式,第二个方面是算法的分类。 一、4大主要学习方式 1…

好用的浏览器主页有哪些?

浏览器主页由于有个网址就能用,越来越受到年轻人的喜爱,而且浏览器主页非常的方便,我为什么说方便呢?举个例子哈,当我们在外边用电脑时,发现电脑自带的浏览器完全不符合自己的使用习惯,没有自己…