AI算法14-套索回归算法Lasso Regression | LR

news2024/11/15 6:45:24

套索回归算法概述

套索回归算法简介

在统计学和机器学习中,套索回归是一种同时进行特征选择和正则化(数学)的回归分析方法,旨在增强统计模型的预测准确性和可解释性,

正则化是一种回归的形式,它将系数估计(coefficient estimate)朝零的方向进行约束、调整或缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。一个简单的线性回归关系如下式。其中 Y 代表学习关系,β 代表对不同变量或预测因子 X 的系数估计。

Y ≈ β_0 + β_1X_1 + β_2X_2 + …+ β_pX_p

拟合过程涉及损失函数,称为残差平方和(RSS)。系数选择要使得它们能最小化损失函数。

这个式子可以根据你的训练数据调整系数。但如果训练数据中存在噪声,则估计的系数就不能很好地泛化到未来数据中。这正是正则化要解决的问题,它能将学习后的参数估计朝零缩小调整。

套索和岭回归都是正则化的方法,我们将对比着描述,其中套索需要最小化下图的函数:

很明显,这种变体只有在惩罚高系数时才有别于岭回归。它使用 |β_j|(模数)代替 β 的平方作为惩罚项。在统计学中,这被称为 L1 范数。让我们换个角度看看上述方法。岭回归可以被认为是求解一个方程,其中系数的平方和小于等于 s。而 套索 可以看作系数的模数之和小于等于 s 的方程。其中,s 是一个随收缩因子 λ 变化的常数。这些方程也被称为约束函数。

假定在给定的问题中有 2 个参数。那么根据上述公式,岭回归的表达式为 β1² + β2² ≤ s。这意味着,在由 β1² + β2² ≤ s 给出的圆的所有点当中,岭回归系数有着最小的 RSS(损失函数)。同样地,对 套索 而言,方程变为 |β1|+|β2|≤ s。这意味着在由 |β1|+|β2|≤ s 给出的菱形当中,套索 系数有着最小的 RSS(损失函数)。

下图描述了这些方程。

上图的绿色区域代表约束函数域:左侧代表 套索,右侧代表岭回归。其中红色椭圆是 RSS 的等值线,即椭圆上的点有着相同的 RSS 值。对于一个非常大的 s 值,绿色区域将会包含椭圆的中心,使得两种回归方法的系数估计等于最小二乘估计。但是,上图的结果并不是这样。在上图中,套索 和岭回归系数估计是由椭圆和约束函数域的第一个交点给出的。因为岭回归的约束函数域没有尖角,所以这个交点一般不会产生在一个坐标轴上,也就是说岭回归的系数估计全都是非零的。然而,套索 约束函数域在每个轴上都有尖角,因此椭圆经常和约束函数域相交。发生这种情况时,其中一个系数就会等于 0。在高维度时(参数远大于 2),许多系数估计值可能同时为 0。

这说明了岭回归的一个明显缺点:模型的可解释性。它将把不重要的预测因子的系数缩小到趋近于 0,但永不达到 0。也就是说,最终的模型会包含所有的预测因子。但是,在 套索 中,如果将调整因子 λ 调整得足够大,L1 范数惩罚可以迫使一些系数估计值完全等于 0。因此,套索 可以进行变量选择,产生稀疏模型。

套索回归发展历史

套索是由斯坦福大学统计学教授Robert Tibshirani于1996年基于Leo Breiman的非负参数推断(Nonnegative Garrote, NNG)提出。后者于其1995年的论文中发表。Robert Tibshirani最初使用套索来提高预测的准确性与回归模型的可解释性,他修改了模型拟合的过程,在协变量中只选择一个子集应用到最终模型中,而非用上全部协变量。

在随后的研究中不同的套索变体被创造出来。几乎所有这些变体都集中于尊重或利用协变量之间的不同类型的依赖性。2005年,Hui Zou和Trevor Hastie提出通过弹性网(elastic net)来实现正则化和变量选择。当预测变量的数量大于样本大小时,弹性网络正则化会增加额外的岭回归类惩罚,从而提高性能,允许方法一起选择强相关变量,并提高整体预测精度。

2006年Ming Yuan和Yi Lin提对变量进行组合,即group 套索,允许选择相关协变量组作为单个单元,主要针对某些情况下变量不单个出现而仅与其他变量一同出现。

2009年,Arnau Tibau Puig等人对group 套索进一步扩展,以在各个组(稀疏组套索)中执行变量选择并允许组之间的重叠(重叠组套索)。

套索结合了上述的两种方法,它通过强制让回归系数绝对值之和小于某固定值,即强制一些回归系数变为0,有效地选择了不包括这些回归系数对应的协变量的更简单的模型。这种方法和岭回归类似,在岭回归中,回归系数平方和被强制小于某定值,不同点在于岭回归只改变系数的值,而不把任何值设为0。

套索回归主要事件

年份

事件

相关论文/Reference

1995

Leo Breiman提出非负参数推断

Breiman, L.(1995). Better Subset Regression Using the Nonnegative Garrote. Technometrics. 37 (4): 373–384.

1996

斯坦福大学统计学教授Robert Tibshirani1996年基于Leo Breiman的非负参数推断(Nonnegative Garrote, NNG)提出套索

Tibshirani, R. (1996). Regression Shrinkage and Selection via the 套索. Journal of the Royal Statistical Society. Series B (methodological). 58 (1): 267–88.

2005

Hui ZouTrevor Hastie提出通过弹性网(elastic net)来实现正则化和变量选择

Zou, H.; Hastie, T. (2005). Regularization and Variable Selection via the Elastic Net. Journal of the Royal Statistical Society. Series B (statistical Methodology). 67 (2): 301–20.

2006

Ming YuanYi Lin提对变量进行组合,即group 套索

Yuan, M.; Lin, Y. (2006). Model Selection and Estimation in Regression with Grouped Variables. Journal of the Royal Statistical Society. Series B (statistical Methodology). 68 (1): 49–67.

2009

Arnau Tibau Puig等人对group 套索进一步扩展,以在各个组(稀疏组套索)中执行变量选择并允许组之间的重叠(重叠组套索)

Puig, A. T., Wiesel, A.; Hero, A. O. (2009). A Multidimensional Shrinkage-Thresholding Operator. Proceedings of the 15th workshop on Statistical Signal Processing, SSP’09, IEEE, pp. 113–116.

套索回归算法的原理及作用

套索回归算法的原理

套索算法的核心思想是在最小二乘估计的基础上,增加一个关于回归系数的L1正则化项。这个正则化项的作用是对回归系数进行惩罚,使得部分系数被压缩至零,从而实现特征选择。

具体来说,套索算法的优化目标可以表示为:

β_hat = argmin { ∑(y_i - β_0 - ∑x_ij * β_j)^2 + λ∑|β_j| }

其中,y_i表示观测值,x_ij表示特征值,β_0表示截距项,β_j表示回归系数,λ是正则化参数,用于控制正则化项的权重。

这个优化目标包含两部分:前半部分是最小二乘估计的损失函数,用于衡量模型拟合数据的能力;后半部分是L1正则化项,用于对回归系数进行惩罚。λ越大,惩罚力度越强,越多的回归系数将被压缩至零。

套索回归算法的作用

在处理具有大量特征的数据集时,我们常常面临两个主要的挑战:

  1. 特征之间可能存在多重共线性,这会导致模型参数估计不稳定甚至无法计算;
  2. 并非所有特征都对预测结果有显著影响,一些无关或冗余的特征可能会干扰模型的预测性能。传统的最小二乘法(Ordinary Least Squares, OLS)回归在这样的高维数据上往往会得到过拟合的模型,即模型在训练集上表现良好但在新数据上泛化能力弱。

为了解决这些问题,统计学家和发展机器学习算法的研究人员提出了一系列的正则化技术,其中套索回归(套索 Regression)就是一种被广泛应用的方法。套索回归通过在回归模型中加入一个调节复杂度的惩罚项来克服上述问题。这个惩罚项是模型系数绝对值之和的λ倍,也就是所谓的L1范数,其中λ是一个非负的调节参数。

引入L1范数作为惩罚项有几个关键的优势:

  1. 稀疏性:L1范数有助于模型产生稀疏解,即推动某些系数减小至零。这一性质特别有用,因为它不仅降低了模型的复杂性,还实现了特征选择的目的,即自动地识别出对响应变量有重要影响的变量。
  2. 可解释性:通过减少特征的数量,模型变得更加容易解释。这对于高维数据尤其重要,因为在高维情况下,找出重要的特征并理解每个特征如何影响预测结果是非常关键的。
  3. 计算效率:尽管套索回归是一个复杂的优化问题,存在多种算法可以高效地求解,如坐标下降法、最小角回归法等。

套索回归算法的实现过程

  1. 数据准备:首先,收集并整理好用于回归分析的数据集,包括观测值、特征值等。
  2. 参数设置:选择合适的正则化参数λ。这通常需要通过交叉验证等方法来确定最优值。
  3. 优化求解:利用优化算法(如坐标下降法、最小角回归等)求解上述优化目标,得到回归系数的估计值。
  4. 特征选择:根据回归系数的估计值,将绝对值较小的系数置为零,从而实现特征选择。这些被置为零的特征在后续建模中将不再考虑。
  5. 模型评估:利用测试数据集对得到的模型进行评估,包括拟合优度、预测误差等指标。根据评估结果调整模型参数,以达到更好的性能。

套索回归算法的代码实现

from sklearn.linear_model import Lasso

lamb = 0.025

lasso_reg = Lasso(alpha=lamb)

lasso_reg.fit(X_poly_d, y)

print(lasso_reg.intercept_, lasso_reg.coef_)

print(

    L_theta_new(intercept=lasso_reg.intercept_,

                coef=lasso_reg.coef_.T,

                X=X_poly_d,

                y=y,

                lamb=lamb))


X_plot = np.linspace(-3, 2, 1000).reshape(-1, 1)

X_plot_poly = poly_features_d.fit_transform(X_plot)

h = np.dot(X_plot_poly, lasso_reg.coef_.T) + lasso_reg.intercept_

plt.plot(X_plot, h, 'r-')

plt.plot(X, y, 'b.')

plt.show()

套索回归算法的应用场景

套索回归可以用于特征选择、解决多重共线性问题以及解释模型结果等应用场景。例如,在医疗诊断领域,我们可以使用套索回归来识别哪些疾病风险因素对预测结果具有最大的影响。在金融领域,我们可以使用套索回归来寻找哪些因素对股票价格变化有最大的影响。

此外,套索回归也可以与其他算法结合使用,例如随机森林、支持向量机等。通过结合使用,我们可以充分利用套索回归的特征选择功能,同时获得其他算法的优点,从而提高模型的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1924515.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口基础知识2:http通信的组成

课程大纲 一、http协议 HTTP(Hypertext Transfer Protocol,超文本传输协议)是互联网中被使用最广的一种网络协议,用于客户端与服务器之间的通信。 HTTP协议定义了一系列的请求方法,例如 GET、POST、PUT、DELETE 等&…

一篇学通Axios

Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 node.js 环境。它提供了一种简单易用的方式来发送 HTTP 请求,并支持诸如请求和响应拦截、转换数据、取消请求以及自动转换 JSON 数据等功能。 Axios 名字的由来 Axios 的名字来源于希腊神话中的…

在Linux系统实现瑞芯微RK3588部署rknntoolkit2进行模型转换

一、首先要先安装一个虚拟的环境 安装Miniconda包 Miniconda的官网链接:Minidonda官网 下载好放在要操作的linux系统,我用的是远程服务器的linux系统,我放在whl这个文件夹里面,这个文件夹是我自己创建的 运行安装 安装的操作都是yes就可以了 检查是否安装成功,输入下面…

秋招突击——7/13——多线程编程(基础知识回顾+编程练习 )

文章目录 引言基础知识Synchronized关键字使用方式用于同步方法针对同步块的方法静态方法使用原理解析 Volatile使用方式实现原理 final关键字 编程练习(synchronized就能实现)双线程轮流打印1-100个人实现参考实现 三线程顺序打出1-100个人实现参考实现…

笔记 4 :linux 0.11 中继续分析 0 号进程创建一号进程的 fork () 函数

(27)本条目开始, 开始分析 copy_process () 函数,其又会调用别的函数,故先分析别的函数。 get_free_page () ; 先 介绍汇编指令 scasb : 以及 指令 sstosd :…

[USACO24OPEN] Smaller Averages G (单调性优化dp)

来源 题目 Bessie 有两个长度为 N的数组(1≤N≤500)。第一个数组的第 i 个元素为 ai​(1≤ai​≤10^6),第二个数组的第 i个元素为bi​(1≤bi​≤10^6)。 Bessie 希望将两个数组均划分为若干非空…

大数据开发中的数据驱动决策:关键问题与实践指南

目录 决策前的准备工作1. 我已经掌握了哪些信息?2. 我们已经做出决定了吗?3. 我们需要哪些额外信息以及何时需要? 决策过程中的关键问题1. 我们需要做这个决定吗?2. 错误地做出这个决定的代价是什么? 决策后的反思1. 我…

主机安全-开源HIDS字节跳动Elkeid安装使用

目录 概述什么是HIDSHIDS与NIDS的区别EDR、XDR是啥? Elkeid架构Elkeid Agent && Agent centerElkeid DriverElkeid RASPElkeid HUBService DiscoveryManager安装数据采集规则&告警 参考 概述 什么是HIDS HIDS( host-based intrusion detec…

CentOS7.X系统部署Zabbix6.0版本(可跟做)

文章目录 一、部署环境说明二、基本环境部署步骤1、环境初始化操作2、部署并配置Nginx3、部署并配置PHP4、测试NginxPHP环境5、部署并配置MariaDB 三、Zabbix-Server部署步骤1、编译安装Zabbix-Server2、导入Zabbix初始化库3、配置Zabbix前端UI4、启动Zabbix-Server5、WEB页面配…

基于 BERT+BILSTM 实现情感分析分类(附源码)

目录 一、数据集 二、数据清洗和划分 2.1 安装依赖 2.2 清洗和划分 三、下载 Bert 模型 四、训练和测试模型 本文主要基于 Bert 和 BiLSTM 实现情感分类,其中参考了多个博客,具体见参考链接。 源码已上传Gitee : bert-bilstm-in-Sentiment-classi…

基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现

基于JavaSpringBootVueuniapp微信小程序实现校园宿舍管理系统 目录 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究内容 第二章 相关技术介绍 2.1 Java语言 2.2 HTML网页技术 2.3 MySQL数据库 2.4 Springboot 框架介绍 2.5 VueJS介绍 2.6 ElementUI介绍 第三章 系…

pytorch训练的时候 shm共享内存不足,导致训练停止

1.查看shm情况 df -h /dev/shm内存已经满了,因为之前训练多次训练意外停止到shm中的缓存不能及时被清理 2、手动清理shm 依然没被释放 3、查看关联的进程,一个一个kill lsof |grep deletedkill -9 46619 44618 44617 。。。。。4、搞定

3011.力扣每日一题7/13 Java(冒泡排序)

博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 冒泡排序 解题思路 解题过程 时间复杂度 空间复杂度 冒泡排序 冒…

jenkins系列-07.轻易级jpom安装

jpom是一个容器化服务管理工具:在线构建,自动部署,日常运维, 比jenkins轻量多了。 本篇介绍mac m1安装jpom: #下载:https://jpom.top/pages/all-downloads/ 解压:/Users/jelex/Documents/work/jpom-2.10.40 启动前修…

[论文阅读]MaIL: Improving Imitation Learning with Mamba

Abstract 这项工作介绍了mamba模仿学习(mail),这是一种新颖的模仿学习(il)架构,为最先进的(sota)变换器策略提供了一种计算高效的替代方案。基于变压器的策略由于能够处理具有固有非…

思维+构造,CF 1059C - Sequence Transformation

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1059C - Sequence Transformation 二、解题报告 1、思路分析 n 1,2,3的情况从样例已知 考虑n > 4的情况 我们考虑要字典序最大,自然要最早出现非1的数,…

老物件线上3D回忆展拓宽了艺术作品的展示空间和时间-深圳华锐视点

在数字技术的浪潮下,3D线上画展为艺术家们开启了一个全新的展示与销售平台。这一创新形式不仅拓宽了艺术作品的展示空间,还为广大观众带来了前所未有的观赏体验。 3D线上画展制作以其独特的互动性,让艺术不再是单一的视觉享受。在这里&#x…

【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】

文章目录 0. 前言1. 安装前准备工作1.1 创建weihu用户1.2 安装依赖包1.2.1 安装 GMP1.2.2 安装MPFR1.2.3 安装MPC 2. gcc10.0.1版本安装3. 报错解决3. 1. wget下载报错 4. 参考文档 0. 前言 gcc(GNU Compiler Collection)是GNU项目的一部分,…

Leetcode-203-移除链表元素-临时变量作用域-c++

题目详见https://leetcode.cn/problems/remove-linked-list-elements/ 题解代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullpt…

动手学深度学习(Pytorch版)代码实践 -注意力机制-Transformer

68Transformer 1. PositionWiseFFN 基于位置的前馈网络 原理:这是一个应用于每个位置的前馈神经网络。它使用相同的多层感知机(MLP)对序列中的每个位置独立进行变换。作用:对输入序列的每个位置独立地进行非线性变换&#xff0c…