深度学习的正则化深入探讨

news2025/3/5 20:20:55

文章目录

  • 一、说明
  • 二、学习目标
  • 三、什么是机器学习中的正则化
  • 四、了解过拟合和欠拟合
  • 五、代价函数的意义
  • 六、什么是偏差和方差?
  • 七、机器学习中的正则化?

一、说明

在训练机器学习模型时,模型很容易过拟合或欠拟合。为了避免这种情况,我们在机器学习中使用正则化来使模型正确地拟合到我们的测试集。正则化技术有助于减少过拟合的可能性,并帮助我们获得最优模型。
在本文中,您将探索使用 Python 进行机器学习中的正则化概念。我们将讨论它在防止过拟合方面的意义和意义,确保模型能够很好地推广到新数据。您将看到正则化技术的示例,例如 L1 和 L2,以及它们在实践中的实施方式。此外,我们将参考来自 Analytics Vidhya 的见解,以增强您对这些方法及其对模型性能影响的理解。到最后,您将清楚地掌握正则化如何改进您的机器学习项目。
在这里插入图片描述

二、学习目标

了解机器学习中的正则化概念及其在防止过拟合和欠拟合方面的作用。
了解不同的正则化技术,例如 Ridge、Lasso 和 Elastic Net 正则化。
获得使用 Python 和 scikit-learn 实现正则化技术的实践知识。

三、什么是机器学习中的正则化

正则化是机器学习中使用的一种技术,用于防止过度拟合并提高模型的泛化性能。从本质上讲,正则化为损失函数添加了一个惩罚项,阻止了模型学习过于复杂的模式,这些模式可能无法很好地推广到看不见的数据。这有助于创建更简单、更健壮的模型。

正则化的主要好处包括:
减少过度拟合:通过限制模型的复杂性,正则化有助于防止模型记住训练数据中的噪声或不相关的模式。
提高泛化性:正则化模型往往在新的、看不见的数据上表现更好,因为它们专注于捕获底层模式,而不是完美地拟合训练数据。
增强模型稳定性:正则化使模型对训练数据中的微小波动不太敏感,从而获得更稳定和可靠的预测。
启用特征选择:一些正则化技术(例如 L1 正则化)可以自动识别并丢弃不相关的特征,从而产生更易解释的模型。
最常见的正则化技术是 L1 正则化 (Lasso),它将模型权重的绝对值添加到损失函数中,以及 L2 正则化 (Ridge),它将权重的平方值相加。通过纳入这些惩罚项,正则化在拟合训练数据和保持机器学习中的正则化之间取得了平衡

正则化是机器学习中使用的一种技术,用于防止过度拟合并提高模型的泛化性能。从本质上讲,正则化为损失函数添加了一个惩罚项,阻止了模型学习过于复杂的模式,这些模式可能无法很好地推广到看不见的数据。这有助于创建更简单、更健壮的模型。

最常见的正则化技术是 L1 正则化 (Lasso),它将模型权重的绝对值添加到损失函数中,以及 L2 正则化 (Ridge),它将权重的平方值相加。通过合并这些惩罚项,正则化在拟合训练数据和保持模型简单之间取得了平衡,最终在新数据上实现了更好的性能。

四、了解过拟合和欠拟合

为了训练我们的机器学习模型,我们为其提供数据以供学习。绘制一系列数据点并绘制最佳拟合线以了解变量之间关系的过程称为数据拟合。当我们的模型可以在我们的数据中找到所有必要的模式并避免随机数据点和称为噪声的不必要模式时,它最适合。

如果我们允许机器学习模型查看数据太多次,它将在数据中发现许多模式,包括一些不必要的模式。它将在测试数据集上很好地学习并且非常适合。它将学习重要的模式,但它也会从我们数据中的噪声中学习,并且无法对其他数据集进行预测。

机器学习模型尝试从细节以及数据中的噪声中学习,并尝试将每个数据点拟合到曲线的场景称为过拟合。

在下图中,我们可以看到该模型适合我们数据中的每个点。如果提供了新数据,则模型曲线可能与新数据中的模式不匹配,并且模型可能无法很好地预测。

在这里插入图片描述
相反,当我们没有让模型查看我们的数据足够多的时间时,它将无法在我们的测试数据集中找到模式。它不能很好地适应我们的测试数据集,也不能处理新数据。

当机器学习模型无法学习测试数据中变量之间的关系或无法预测或分类新数据点时,就会发生欠拟合。

下图显示了一个装备不足的模型。我们可以看到它没有正确拟合给出的数据。他没有在数据中找到模式,并且忽略了大部分数据集。它不能同时处理已知和未知数据。

在这里插入图片描述

五、代价函数的意义

代价函数/误差函数:采用斜率截距(m 和 c)值并返回误差值/成本值。它显示预测结果与实际结果之间的误差进行比较。它解释了您的模型在预测中是如何不准确的。

它用于估计模型对给定数据集及其维度的性能有多糟糕。

为什么成本函数在机器学习中很重要?是的,成本函数帮助我们达到最佳解决方案,那么我们该怎么做呢。将看到使用 Python 库的所有可能方法和简单步骤。

此功能通过最小化误差来帮助我们找出最佳直线

最佳拟合线是该线周围误差平方和最小的线

六、什么是偏差和方差?

当算法从数据集中学习的灵活性有限时,就会出现偏差。这些模型很少关注训练数据,并且过度简化了模型,因此验证或预测误差和训练误差遵循类似的趋势。此类模型始终会导致训练和测试数据中出现高误差。高偏差会导致我们的模型调整不足。

方差定义算法对特定数据集的敏感度。高方差模型密切关注训练数据,并且不会泛化,因此验证或预测误差彼此相差甚远。此类模型通常在训练数据上表现非常好,但在测试数据上具有很高的错误率。高偏差会导致模型出现过冲。

最优模型是指模型对模型中的模式敏感,但也可以泛化到新数据的模型。当偏差和方差都是最佳时,就会发生这种情况。我们称之为 Bias-Variance Tradeoff,我们可以使用回归在过度拟合或欠拟合的模型中实现这一点。
在这里插入图片描述
上图显示,当偏差较高时,测试集和训练集中的误差也很高。当偏差较高时,模型在我们的训练集上表现良好,误差较低,但测试集上的误差非常高。在这中间,有一个区域,偏差和方差在这里也彼此完美平衡,但训练和测试误差很低。

七、机器学习中的正则化?

它是指用于校准机器学习模型以最小化调整后的损失函数并避免过拟合或欠拟合的技术。
在这里插入图片描述
正则化技术
让我们讨论可用的正则化技术,然后是实现
在这里插入图片描述

  1. 岭回归(L2 正则化):

基本上,在这里,我们将最小化误差的平方和以及系数的平方和 (β)。在背景中,
具有较大幅度的系数 (β) 将生成图形峰值和
深斜率,为了抑制这一点,我们使用 lambda (λ) 用于称为
惩罚因子,并帮助我们获得光滑的表面而不是不规则的图形。Ridge Regression 用于将 coefficients(β) 值在量级方面推向接近零。这就是 L2 正则化,因为它增加了一个等价于系数大小的平方的罚值。

Ridge 回归 = Loss 函数 + 正则化项
在这里插入图片描述
2. 套索回归(L1 正则化):
这与 Ridge 回归非常相似,在 Penalty Factor (惩罚因子) 中几乎没有差异,系数是量级而不是平方。其中许多系数有可能变为零,因此相应的属性/特征变为零并从列表中删除,这最终会减少维度并支持降维。那么决定这些属性/特征不适合作为预测目标值的捕食者。这是 L1 正则化,因为将绝对值添加为系数大小的惩罚等效值。

套索回归 = 损失函数 + 正则化项
在这里插入图片描述
3. Lambda 的特点
λ = 0λ => 最小值λ =>HighLambda 或罚因子 (λ)对系数 (β) 没有影响,模型会过拟合。不适用于
ProductionGeneralised 模型和可接受的精度,并且符合 Test and
Train 的条件。适合生产对系数 (β) 影响非常大,导致欠拟合。最终
不适合生产环境。

请记住一件事,Ridge 永远不会将系数归零,Lasso 会这样做。因此,您可以使用第二个进行特征选择。

正则化的影响

下面的图形表示清楚地表明了最佳配合。
在这里插入图片描述
4. 弹性网络回归正则化:
尽管 Python 提供了出色的库,但我们应该了解这背后的数学原理。以下是详细的推导供您参考。

山脊:α=0
套索:α=1
5. 正则化技术的图像表示
在这里插入图片描述
L1 和 L2 的数学方法
尽管 Python 提供了出色的库和简单的编码,但我们应该了解这背后的数学原理。以下是详细的推导供您参考。

让我们得到下面的多元线性回归数据集及其方程
在这里插入图片描述
正如我们所知道的,多元线性回归

y = β 0 + β 1 x 1 + β 2 x 2 + . . . . . . . . . . . . . . . . . . + β n x n ————– 1 y=β_0+ β_1 x_1+ β_2 x_2+..................+ β_n x_n — — — — –1 y=β0+β1x1+β2x2+..................+βnxn————–1

y i = β 0 + σ β i x i —————– 2 y_i= β_0+ σ β_i x_i — — — — — –2 yi=β0+σβixi—————–2

Σ yi– β0– Σ βi 习

成本/损失函数: Σ{ yi– β0– Σ βi xij}2 — — — — — –3

正则化项: λΣ βi2 — — — — — -4

岭回归 = 损失函数 + 正则化项 — — — — — –5

将 3 和 4 放入 5 中

岭回归 = Σ { yi– β0– Σ βi xij}2+ λ Σ βi2

套索回归 = Σ { yi– β0– Σ βi xij}2+ λ Σ |βi|

x ==> 个自变量
y ==> 个目标变量
β ==> 系数
λ ==> 罚因子
系数 (β) 如何在内部计算

正则化代码
让我们以 Automobile — Predictive Analysis 为例,应用 L1 和 L2 以及它如何帮助模型评分。

目标:使用汽车的给定特征预测汽车的里程/每加仑英里数 (mpg)。

import numpy as np

import pandas as pd

import seaborn as sns

import matplotlib.pyplot as plt

from sklearn.linear_model import LinearRegression

from sklearn.linear_model import Ridge

from sklearn.linear_model import 套索

from sklearn.metrics import
 r2_score
 df_cars = pd.read_csv(“auto-mpg.csv”)
print(df_cars.head(5))

在这里插入图片描述
EDA:会做少量的 EDA(探索性数据分析),来理解数据集
在这里插入图片描述
观察:

  1. 我们可以看到 Features 及其数据类型,以及 Null 约束。
  2. 马力和名称特征是给定数据集中的对象。在建模过程中必须注意。

训练和测试拆分

from Sklearn model_selection import train_test_split X_train、X_test、y_train、y_test = train_test_split(X_scaled、y_scaled、test_size=0.25、random_state=1)

在这里插入图片描述

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

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

相关文章

《OpenCV》——dlib(人脸应用实例)

文章目录 dlib库dlib库——人脸应用实例——表情识别dlib库——人脸应用实例——疲劳检测 dlib库 dlib库的基础用法介绍可以参考这篇文章:https://blog.csdn.net/lou0720/article/details/145968062?spm1011.2415.3001.5331,故此这篇文章只介绍dlib的人…

tauri2+typescript+vue+vite+leaflet等的简单联合使用(一)

项目目标 主要的目的是学习tauri。 流程 1、搭建项目 2、简单的在项目使用leaflet 3、打包 准备项目 环境准备 废话不多说,直接开始 需要有准备能运行Rust的环境和Node,对于Rust可以参考下面这位大佬的文章,Node不必细说。 Rust 和…

本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南

在生成式AI技术爆发式发展的今天,阿里云开源的万象2.1(Wan2.1)视频生成模型,为创作者提供了从文字/图像到高清视频的一站式解决方案。本文针对消费级显卡用户,以RTX 4060 Ti 16G为例,详解本地部署全流程与性能调优方案,涵盖环境配置、多模型选择策略、显存优化技巧及实战…

【Vue CLI脚手架开发】——3.组件交互props配置

文章目录 前言一、props数据接收方式二、代码实现1. 父组件2.子组件 三、分析 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习…

FPGA之USB通信实战:基于FX2芯片的Slave FIFO回环测试详解

FPGA之Usb数据传输 Usb 通信 你也许会有疑问,明明有这么多通信方式和数据传输(SPI、I2C、UART、以太网)为什么偏偏使用USB呢? 原因有很多,如下: 1. 高速数据传输能力 高带宽:USB接口提供了较高的数据传…

【Office-Word】如何自动生成中英文目录

1.目录介绍 Word这个自动生成目录非常强大,涉及的功能很琐碎,想要完美的生成目录不仅仅是只会目录这么简单,前后涉及到的大纲级别、目标样式和域代码等操作是比较头疼的。 下面就一步一步开始介绍 2.多级标题级别编号设置 目录想要设置好…

CentOS 7 安装Nginx-1.26.3

无论安装啥工具、首先认准了就是官网。Nginx Nginx官网下载安装包 Windows下载: http://nginx.org/download/nginx-1.26.3.zipLinxu下载 wget http://nginx.org/download/nginx-1.26.3.tar.gzLinux安装Nginx-1.26.3 安装之前先安装Nginx依赖包、自行选择 yum -y i…

家政预约小程序用例图分析

在和客户进行需求沟通的时候,除了使用常规的问答的形式,我还使用图形化工具更深入的沟通。比如借助UML的用例图来开展系统分析,并且按照角色详细拆解了家政预约小程序的各个用例。在分析阶段思考的越多,沟通的越多,在系…

112页精品PPT | DeepSeek行业应用实践报告

这份文件是一份关于DeepSeek行业应用实践的报告,以PPT形式呈现,共112页,详细介绍了DeepSeek及其核心产品DeepSeek-R1的技术特点、市场表现、应用路径以及在多领域的实践案例。报告展示了DeepSeek在市场上的快速崛起,包括其日活用户…

计算机毕业设计SpringBoot+Vue.js航空机票预定系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

C语言学习笔记-初阶(27)操作符详解1:位操作

1. 操作符的分类 上述的操作符,我们已经学过算术操作符、赋值操作符、逻辑操作符、条件操作符和部分的单目操作符,今天继续介绍⼀部分,操作符中有一些操作符和二进制有关系,我们先铺垫一下二进制的和进制转换的知识。 2. 二进制、…

网络安全需要学多久才能入门?

网络安全是一个复杂且不断发展的领域,想要入行该领域,我们需要付出足够多的时间和精力好好学习相关知识,才可以获得一份不错的工作,那么网络安全需要学多久才能入门?我们通过这篇文章来了解一下。 学习网络安全的入门时间因个人的…

20250304学习记录

第一部分,先来了解一下各种论文期刊吧,毕竟也是这把岁数了,还什么都不懂呢 国际期刊: EI收集的主要有两种, JA:EI源刊 CA:EI会议 CPCI也叫 ISTP 常说的SCI分区是指,JCR的一区、…

【星云 Orbit • STM32F4】08. 用判断数据头来接收据的串口通用程序框架

【星云 Orbit • STM32F4】08. 用判断数据头来接收据的串口通用程序框架 1. 引言 本教程旨在帮助嵌入式开发小白从零开始,学习如何在STM32F407微控制器上实现一个基于串口的数据接收程序。该程序能够通过判断数据头来接收一串数据,并将其存储到缓冲区中…

文件上传复现

文件上传漏洞的概念 在现代互联网的web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,比如社交 网站中,允许用户上传图片、视频、头像和许多其他类型的文件。然而向用户提供的功能越多, web应 用受到…

Redis——缓存穿透、击穿、雪崩

缓存穿透 什么是缓存穿透 缓存穿透说简单点就是大量请求的 key 根本不存在于缓存中,导致请求直接到了数据库上,根本没有经过缓存这一层。举个例子:某个黑客故意制造我们缓存中不存在的 key 发起大量请求,导致大量请求落到数据库…

HMC7043和HMC7044芯片配置使用

一,HMC7043芯片 MC7043独特的特性是对14个通道分别进行独立灵活的相位管理。所有14个通道均支持频率和相位调整。这些输出还可针对50 Ω或100 Ω内部和外部端接选项进行编程。HMC7043器件具有RF SYNC功能,支持确定性同步多个HMC7043器件,即确保所有时钟输出从同一时钟沿开始…

VSCode知名主题带毒 安装量900万次

目前微软已经从 Visual Studio Marketplace 中删除非常流行的主题扩展 Material Theme Free 和 Material Theme Icons,微软称这些主题扩展包含恶意代码。 统计显示这些扩展程序的安装总次数近 900 万次,在微软实施删除后现在已安装这些扩展的开发者也会…

mybatis映射文件相关的知识点总结

mybatis映射文件相关的知识点总结 mybatis官网地址 英文版:https://mybatis.org/mybatis-3/index.html 中文版:https://mybatis.p2hp.com/ 搭建环境 /* SQLyog Ultimate v10.00 Beta1 MySQL - 8.0.30 : Database - mybatis-label *****************…

【UCB CS 61B SP24】Lecture 21: Data Structures 5: Priority Queues and Heaps 学习笔记

本文介绍了优先队列与堆,分析了最小堆的插入与删除过程,并用 Java 实现了一个通用类型的最小堆。 1. 优先队列 1.1 介绍 优先队列是一种抽象数据类型,其元素按照优先级顺序被处理。不同于普通队列的先进先出(FIFO)&…