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

套索回归算法概述

套索回归算法简介

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

正则化是一种回归的形式,它将系数估计(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 Lassolamb = 0.025lasso_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.mzph.cn/web/44654.shtml

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

相关文章

并发编程-06之Semaphore

一 Semaphore入门 1.1 什么是Semaphore Semaphore,俗称信号量,它是操作系统中PV操作的原语在java的实现,它也是基于AbstractQueuedSynchronizer实现的。 Semaphore的功能非常强大,大小为1的信号量就类似于互斥锁,通过同…

centos部署jar包

第一步: 将IDEA中的项目打包为jar,将这个jar文件放到centos服务器上的目录里,我在opt新建api目录,将jar文件放入,如下图: 第二步: 将需要读取的配置文件也放入此目录(其他目录也可以,和脚本中…

搭建RAG系统就这么简单:LangChain|RAG是什么?

RAG是什么 “RAG”(Retrieval-Augmented Generation)是一种结合了检索(Retrieval)和生成(Generation)的人工智能技术,它在大模型中被需要的原因包括: 知识丰富性: 大模…

探索数据结构与算法的奇妙世界 —— Github开源项目推荐《Hello 算法》

在浩瀚的编程与计算机科学领域中,数据结构与算法无疑是每位开发者攀登技术高峰的必经之路。然而,对于初学者而言,这条路往往布满了荆棘与挑战。幸运的是,今天我要向大家推荐一个令人振奋的项目——《Hello Algo》,它正…

ubuntu使用kubeadm搭建k8s集群

一、卸载k8s kubeadm reset -f modprobe -r ipip lsmod rm -rf ~/.kube/# 自己选择性删除 坑点哦 rm -rf /etc/kubernetes/ rm -rf /etc/systemd/system/kubelet.service.d rm -rf /etc/systemd/system/kubelet.service rm -rf /usr/bin/kube* rm -rf /etc/cni rm -rf /opt/cn…

Prometheus + alermanager + webhook-dingtalk 告警

添加钉钉机器人 1. 部署 alermanager 1.1 下载软件包 wget https://github.com/prometheus/alertmanager/releases/download/v0.26.0/alertmanager-0.26.0.linux-amd64.tar.gz 网址 :Releases prometheus/alertmanager (github.com) 1.2 解压软件包 mkdir -pv …

医日健集团技术力量体现测试的背后

医日健集团覆盖式更新 科技日新月异的时代,医日健集团始终走在行业的前列。近日,医日健集团外勤技术人员全面对市场点位投放的数智药房进行了新系统升级和机器测试,这是医日健对于科技创新的最新尝试。 以客户体验为核心优化新体验 医日健集团…

Js 前置,后置补零的原生方法与补字符串 padStart及padEnd

在工作中,遇到了需要将不满八位的一个字符串进行后补0的操作,所以就在网上学习了关于js原生补充字符串的方法,然后用这篇博客记录下来。 目录 前置补充字符串 String.prototype.padStart() 后置补充字符串String.prototype.padEnd() 前置补…

【超音速 专利 CN117710683A】基于分类模型的轻量级工业图像关键点检测方法

申请号CN202311601629.7公开号(公开)CN117710683A申请日2023.11.27申请人(公开)超音速人工智能科技股份有限公司发明人(公开)张俊峰(总); 杨培文(总); 沈俊羽; 张小村 技术领域 本发明涉及图像关键点检测…

数据库MySQL下载安装

MySQL下载安装地址如下: MySQL :: Download MySQL Community Server 1、下载界面 2、点击下载 3、解压记住目录 4、配置my.ini文件 未完..

Vue.js学习笔记(五)抽奖组件封装——转盘抽奖

基于VUE2转盘组件的开发 文章目录 基于VUE2转盘组件的开发前言一、开发步骤1.组件布局2.布局样式3.数据准备 二、最后效果总结 前言 因为之前的转盘功能是图片做的,每次活动更新都要重做UI和前端,为了解决这一问题进行动态配置转盘组件开发,…

STM32智能仓储管理系统教程

目录 引言环境准备晶智能仓储管理系统基础代码实现:实现智能仓储管理系统 4.1 数据采集模块 4.2 数据处理与决策模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景:仓储管理与优化问题解决方案与优化收尾与总结 1. 引言 智能仓储管理系统…

7 月12日学习打卡--栈和队列的相互转换

hello大家好呀,本博客目的在于记录暑假学习打卡,后续会整理成一个专栏,主要打算在暑假学习完数据结构,因此会发一些相关的数据结构实现的博客和一些刷的题,个人学习使用,也希望大家多多支持,有不…

什么是STM32?嵌入式和STM32简单介绍

1、嵌入式和STM32 1.1.什么是嵌入式 除了桌面PC之外,所有的控制类设备都是嵌入式 嵌入式系统的定义:“用于控制、监视或者辅助操作机器和设备的装置”。 嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板,是一种专用的计算机系统。…

初阶数据结构速成

本篇文章算是对初阶数据结构的总结,内容较多,请耐心观看 基础概念部分 顺序表 线性表( linear list )是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构,常⻅的线性表:…

机器学习——关于极大似然估计法的一些个人思考(通俗易懂极简版)

最近在回顾机器学习的一些相关理论知识,回顾到极大似然法时,对于极大似然法中的一些公式有些迷糊了,所以本文主要想记录并分享一下个人关于极大似然估计法的一些思考,如果有误,请见谅,欢迎一起前来探讨。当…

单元测试实施最佳方案(背景、实施、覆盖率统计)

1. 什么是单元测试? 对于很多开发人员来说,单元测试一定不陌生 单元测试是白盒测试的一种形式,它的目标是测试软件的最小单元——函数、方法或类。单元测试的主要目的是验证代码的正确性,以确保每个单元按照预期执行。单元测试通…

合肥高校大学智能制造实验室数字孪生可视化系统平台建设项目验收

合肥高校大学智能制造实验室近日迎来了一项重要时刻,数字孪生可视化系统平台建设项目顺利通过了验收。这一项目的成功实施,不仅标志着合肥高校在智能制造领域取得新的突破,为我国智能制造技术的发展注入新活力。 合肥高校智能制造实验室作为…

T972 切换至pdm 声音输入的方法

1.在hardware/amlogic/audio/audio_hal/audio_hw.c下,直接切换 在 static unsigned int select_port_by_device(struct aml_audio_device *adev) 中先强制切换为pdm 2.在device mk 配置文件中 #add fof fix the mic bug by jason 20230621 PRODUCT_PROPERTY_OVE…

MySQL 数据库基础概念

一、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 我们也可以将数据存储在文件中&…