了解线性回归、岭回归和套索回归

news2024/11/16 11:41:44

 逐步对 Linear、Ridge 和 Lasso 回归进行数学理解。

LASSO(左)和岭回归(右)的约束区域

一、说明 

        在本文中,我们将深入探讨机器学习中两种基本正则化技术的基础和应用:Ridge 回归和 Lasso 回归。这些方法在缓解过拟合方面起着至关重要的作用,从而增强了模型对新数据的泛化能力。

二. 线性回归

        线性回归是机器学习中的一种基本统计方法,它对因变量 y 和一个或多个自变量 X 之间的线性关系进行建模。在简单的回归中,我们关注一个自变量。这种关系通过公式表示:

  • y 是因变量。
  • X 是自变量。
  • α是 Y 轴截距。
  • β 是斜率(X 的系数)。
  • ε 表示数据中的误差或噪声,即 y 中不能用 X 解释的部分。

2.1 成本函数

模型的拟合是使用名为 J 的均方误差 (MSE) 成本函数评估的:

  • n 是数据集中的观测值数。
  • ŷ(i) 是模型对第 i个观测值的预测。
  • Yi) 是第 i个观测值的 y 的实际值。

目标是最小化此函数,以找到使模型的预测尽可能接近 y 的实际值的参数αβ

2.2 求解αβ

通过推导与 α 和 β相关的成本函数并将其设置为零,我们找到了最小化 MSE 的估计值,从而得出:

x̄ 和 ȳ bar 分别是 X 和 y 的平均值。

2.3 简单数据示例

考虑一个用于简单回归的虚构数据集:

XY
12
24
36

计算βα :

如果我们在前期方程中替换,在我们的示例 β = 2 中,为了简单起见,显示了一个没有截距的完美线性关系:y=2X

为了简化起见,我们考虑常数项 α = 0。

三、线性回归的正则化

正则化旨在通过向成本函数添加惩罚项来防止过拟合,从而降低模型的复杂性。这使我们能够获得更好地泛化到新数据的系数,但代价是训练集的准确性略有下降。

3.1 岭回归

Ridge 方法通过使用 L2 范数降低系数的复杂性来简化模型,提高了对新数据的泛化能力,即使它可能会略微降低训练集的准确性。

3.2 成本函数

单个变量的 Ridge 回归的成本函数(其中 α 是截距,β是 X 的系数)为:

λ 是正则化超参数,β² 表示β系数的平方(在此示例中,我们考虑一个特征的单个β,α = 0)。

3.3 求解方程

为了找到最小化成本函数的 β 的值,我们计算了 Jβ) 相对于 β 的偏导数,并将它们设置为零。

为简单起见,我们围绕原点进行工作,允许我们忽略 α (α=0) 并仅关注β,并为示例设置 λ=2。

将我们的值代入关于β的导数中。

我们会发现:

  • 对于 λ=2 : β=1.94
  • 当 λ=1 : β=1.45
  • 当 λ=10 : β=1.45
  • 当 λ=100 : β=0.24

在 Ridge 回归中,即使 λ 显著增加,系数 β 也永远不会正好为零。这与 L1 正则化(用于 Lasso 回归)有根本区别,L1 正则化可以将一些系数减少到零,从而执行特征选择。

从数学上讲,只要 λ 是有限的,β就永远不会完全为零。Ridge 回归中的正则化项惩罚系数的平方,这意味着无论系数是正的还是负的,其大小都会减小,而不会直接影响其符号。

四、套索回归

Lasso 回归(Least Absolute Shrinkage and Selection Operator)是一种正则化方法,它通过使用 L1 范数作为其惩罚项来区别于 Ridge 回归。这一独特功能使 Lasso 回归不仅可以通过减小系数的大小来降低模型的复杂性,还可以通过完全抵消某些系数来执行变量选择。

4.1 成本函数

Lasso 回归的成本函数(其中 α 是截距,β 是 X 的系数)由下式给出:

λ 是控制正则化程度的超参数。添加 λβ∣ 项会施加与模型系数绝对值成正比的惩罚,从而促进系数稀疏性。

4.2 计算衍生品

与 Ridge 回归不同,由于惩罚的绝对性质,Lasso 成本函数相对于 β 的导数并不那么简单。这使得求解过程复杂化,通常通过优化的数值方法求解。

4.3 求解方程

在实践中,在 Lasso 回归中寻找 α 和 β 的解决方案通常涉及优化技术,这些技术可以处理 L1 惩罚函数 β=0 时的不可微性。

可以使用子微分性原理来求解 Lasso 成本函数,因为术语 ∣β∣ 使得成本函数在 β=0 时不可微。

对于变量 X,成本函数的二次部分相对于 β 的导数(忽略 λ 惩罚,仍考虑 α=0)与线性回归模型中的导数相同。

为了纳入 L1 惩罚,使用了 ∣β∣ 的子导数,因为 ∣β∣ 在 β=0 时是不可微的。子导数 ∣β∣ 为:

  • −1 如果 β<0
  • 如果 β>0 为 1
  • 区间 [−1,1],如果 β=0

因此,包括 L1 惩罚项在内,优化成本函数需要在更新β时考虑这些条件。

我们将使用一种直观的解决方案,即软阈值来解决问题。

4.4 简化的软阈值概念

软阈值是一种分析方法,用于调整每个系数β考虑成本函数在 β=0 时的不可微性。

简化而言,在单个系数 β 且 λ=2 的情况下,软阈值运算可以表示为:

此调整将 β 的幅度降低 λ 设定的阈值。如果调整后的 β 值低于此阈值,则系数设置为零,因此:

  • 我们减小了系数的大小,以对抗过拟合。
  • 我们通过消除不太重要的变量的系数来选择最重要的变量。

4.5 简单数据示例

为了说明使用相同数据集的套索回归:

XY
12
24
36

 

我们寻求找到能够最小化成本函数β方法:

对于 λ=2 (并给出初始 β=2) :

更新β = 0

对于给定的 λ,精确的调整取决于误差和 λ 惩罚的总和。如果结果为负(表明 β 的贡献与 λ 相比不够显著),则将系数设置为零(特征选择)。

请注意,这种简化的解释旨在使软阈值的概念更易于理解,而无需深入研究复杂的数学细节(我们考虑单个 Beta 系数,并且我们简化了公式)。

总之,本文探讨了机器学习中的基本正则化技术:Ridge 和 Lasso 回归。这些方法通过战略性地调整系数来减少过拟合并增强模型泛化。岭回归可以减小所有系数的大小,而 Lasso 可以抵消一些系数,从而有助于识别最重要的变量。

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

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

相关文章

脊髓损伤小伙伴的活力重启秘籍! 让我们一起动起来,拥抱不一样的精彩生活✨

Hey小伙伴们~&#x1f44b; 今天咱们来聊聊一个超级重要又温暖的话题——脊髓损伤后的锻炼大法来啦&#xff01;&#x1f389; 记住&#xff0c;无论遇到什么挑战&#xff0c;我们都要像打不死的小强一样&#xff0c;活力满满地面对每一天&#xff01;&#x1f4aa; 首先&#…

基础进阶-搭建pxe网络安装环境实现服务器自动部署

目录 原理解释 ​编辑 开机界面解释 搭建步骤 下载环境需要用到的基本程序 查看帮助 帮助内容解释 环境搭建 修改 DHCP 修改 default 文件 测试 原理解释 开机界面解释 在开机界面中&#xff0c;圈起来的部分显示的就是光盘&#xff0c;我们需要将光盘转换成网络的 在…

.NET内网实战:模拟Installer关闭Defender

01基本介绍 02编码实现 原理上通过Windows API函数将当前进程的权限提升至TrustedInstaller&#xff0c;从而实现了对Windows Defender服务的控制。通常可以利用Windows API中的OpenSCManager、OpenProcessToken、ImpersonateLoggedOnUser以及ControlService等函数协同工作&am…

Modbus-Ascii详解

目录 Modbus-Ascii详解 Modbus-Ascii帧结构 LRC效验 将数据字节转成ASCII 将返回帧转为数据字节 Modbus-Ascii的实现 使用NModbus4实现Modbus-Ascii 实例 Modbus-Ascii详解 Modbus ASCII是一种将二进制数据转换为可打印的ASCII字符的通信协议&#xff0c;‌每个8位数据需要两…

WPF学习(4)- VirtualizingStackPanel (虚拟化元素)+Canvas控件(绝对布局)

VirtualizingStackPanel虚拟化元素 VirtualizingStackPanel 类&#xff08;虚拟化元素&#xff09;和StackPanel 类在用法上几乎差不多。其作用是在水平或垂直的一行中排列并显示内容。它继承于一个叫VirtualizingPanel的抽象类&#xff0c;而这个VirtualizingPanel抽象类继承…

AI基础架构-NVLink 技术详解

AI Infra 基础知识 - NVLink 入门 NVLink&#xff0c;一种专有互连硬件&#xff0c;实现Nvidia GPU与CPU之间的高效、一致数据和控制传输&#xff0c;提升多GPU系统性能。 概述 NVLink 于 2014 年初发布&#xff0c;旨在作为 PCI Express 的替代解决方案&#xff0c;具有更…

Java零基础之多线程篇:线程同步

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

Java13.0标准之重要特性及用法实例(二十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 新书发布&#xff1a;《Android系统多媒体进阶实战》&#x1f680; 优质专栏&#xff1a; Audio工程师进阶系列…

【第三版 系统集成项目管理工程师】第9章 项目管理概论

持续更新。。。。。。。。。。。。。。。 【第三版】第九章 项目管理概论 9.1 PMBOK的发展9.2 项目基本要素9.2.1项目基础 P3041.独特的产品、服务或成果-P3042.临时性工作-P3043.项目驱动变更-P3054.项目创造业务价值-P3055.项目启动背景-P306 9.2.2项目管理 P3069.2.2 项目管…

AQS的ReentrantLock源码

什么是AQS&#xff08;全称AbstractQueuedSynchronizer&#xff09; 代表&#xff1a;重入锁、独占锁/共享锁、公平锁/非公平锁 是JUC包中线程阻塞、阻塞队列、唤醒、尝试获取锁的一个框架 AbstractQueuedSynchronizer是全称&#xff0c;是一个模板模式&#xff0c;一些线程…

深入理解Java的内存管理机制

文章目录 1. 程序计数器 (Program Counter Register)2. Java虚拟机栈 (Java Virtual Machine Stack)3. 本地方法栈 (Native Method Stack)4. 堆 (Heap)a. 年轻代 (Young Generation)b. 老年代 (Old Generation) 5. 方法区 (Method Area)6. 运行时常量池 (Runtime Constant Pool…

magic-api相关应用与配置

目录 项目启动 工具&#xff1a;IDEA 运行项目 关于配置 项目启动 工具&#xff1a;IDEA 新建——》项目——》导入——》运行 运行项目 http://localhost:9999/magic/web/index.htmlhttp://localhost:9999/magic/web/index.html 关于配置 配置多数据源 在线配置多数据…

git版本控制的底层实现

目录 前言 核心概念串讲 底层存储形式探测 本地仓库的详细解析 提交与分支的深入解析 几个问题的深入探讨 前言 Git的重要性 Git是一个开源的版本控制工具&#xff0c;广泛用于编程开发领域。它极大地提高了研发团队的开发协作效率。对于开发者来说&#xff0c;Git是一个…

32-《蝴蝶兰》

蝴蝶兰 蝴蝶兰&#xff08;学名&#xff1a;Phalaenopsis aphrodite Rchb. F.&#xff09;为兰科蝴蝶兰属&#xff0c;原产于亚热带雨林地区&#xff0c;为附生性兰花。蝴蝶兰白色粗大的气根露在叶片周围&#xff0c;除了具有吸收空气中养分的作用外&#xff0c;还有生长和光合…

java之WIFI模块实现文件传输(开源)

AndroidManifest这里要获取到权限,所以要导入: <uses-permission android:name"android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name"android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name"…

22 - grace数据处理 - 补充 - 泄露误差改正 - Slepian局部谱分析法(二) - Slepian谱分析程序包初始化

22 - grace数据处理 - 补充 - 泄露误差改正 - Slepian局部谱分析法 - Slepian谱分析程序包初始化 0 引言1 slepian程序包配置过程1.1 获取环境配置安装包1.2 执行demo测试是否配置成功2 结语0 引言 上篇提到进行slepian谱分析可以使用美国普林斯顿大学Frederik Simons教授提供的…

Google Chrome 应用商店插件离线导出导入方法(亲测有效)

Google Chrome 浏览器插件&#xff08;也称为扩展程序&#xff09;是一种可以增强浏览器功能的小型软件程序。这些插件可以让用户在浏览器中添加新的功能、定制化界面、自动化任务等。以下是一些常见的 Google Chrome 浏览器插件功能&#xff1a; 功能增强&#xff1a;插件可以…

使用 Pytorch 从头开始​​构建 Transformer

目录 一、说明 二、输入嵌入 2.1 __init__()方法目的 2.2 super() 三、PositionalEncoding 类 四、位置编码的工作原理 4.1 总体过程 4.2 数学公式 五、LayerNormalization 类 5.1 过程描述 5.2 例子 六、FeedForwardBlock 类 6.1 总体描述 6.2 数学公式 七、MultiHeadAttentio…

全球清真食品配料市场规划预测:未来六年CAGR为3.4%

随着全球穆斯林人口的增长和消费能力的提升&#xff0c;清真食品配料作为符合伊斯兰教义的食品添加剂和成分&#xff0c;正逐渐受到更多消费者的青睐。本文旨在通过深度分析清真食品配料行业的各个维度&#xff0c;揭示行业发展趋势和潜在机会。 【市场趋势的演变】 1. 市场规…

AI 生成搞笑段子

段子在我们生活中扮演着极为重要的角色&#xff0c;它不仅能够带给我们欢乐和娱乐&#xff0c;还能够促进交流和拉近人与人之间的距离。通过幽默诙谐的段子&#xff0c;我们可以轻松地化解尴尬和紧张的气氛&#xff0c;让沉闷的场合变得活泼有趣。 而段子手生成器&#xff0c;则…