机器学习系列5-特征组合、简化正则化

news2024/10/7 14:27:51

1.特征组合

1.1特征组合:编码非线性规律

我们做出如下假设:蓝点代表生病的树。橙色的点代表健康的树。
在这里插入图片描述

您可以绘制一条直线将生病的树与健康的树清晰地分开吗?不可以。这是一个非线性问题。您绘制的任何线条都无法很好地预测树的健康状况。
如需解决图 2 中所示的非线性问题,请创建一个特征组合。特征组合是指通过将两个或多个输入特征相乘来对特征空间中的非线性特征进行编码的合成特征。(术语跨来自跨产品。) 下面我们通过组合 x1和x3来创建一个名为“x3”的特征组合:x3=x1x2
在这里插入图片描述

1.2 特征组合的种类

我们可以创建许多不同类型的特征组合。例如:

  • [A X B]:将两个特征的值相乘形成的特征组合。
  • [A x B x C x D x E]:将五个特征的值相乘形成的特征组合。
  • [A x A]:通过对单个特征求平方形成的特征组合。
    通过采用随机梯度下降法,可以有效地训练线性模型。因此,使用特征组合补充缩放的线性模型一直是对大规模数据集进行训练的高效方法。

2. 简化正则化:L2 正则化

请考虑以下泛化曲线,该曲线显示的是训练集和验证集相对于训练迭代次数的损失。
图 1. 训练集和验证集的损失。
在这里插入图片描述

图 1 显示了一个模型,其中训练损失逐渐减少,但验证损失最终增加。换言之,该泛化曲线显示模型与训练集中的数据过拟合。根据奥卡姆的内在结构,或许我们可以通过降低复杂模型的复杂度来防止过拟合,这种原则称为正则化。
换言之,不应只是以最小化损失(经验风险最小化)为目标:
minimize(Loss(Data|Model))
而是以最小化损失和复杂度为目标,这称为结构风险最小化:
minimize(Loss(Data|Model) + complexity(Model))
现在,我们的训练优化算法是一个由两项内容组成的函数:一个是损失项,用于衡量模型与数据的拟合度,另一个是正则化项,用于衡量模型复杂度。
机器学习速成课程重点介绍了两种衡量模型复杂度的常见方式(两者在一定程度上相关):

  • 将模型复杂度作为模型中所有特征的权重的函数。
  • 将模型复杂度作为具有非零权重的特征总数的函数。

如果模型复杂度是权重的函数,则特征权重的绝对值越高,对模型复杂度的贡献就越大。
我们可以使用 L2 正则化公式量化复杂性,该公式将正则化项定义为所有特征权重的平方和:
L2 regularization term=||w||22=w21+w22+...+w2n

在此公式中,接近于 0 的权重对模型复杂度几乎没有影响,而离群值权重则会产生巨大的影响。
例如,某个线性模型具有以下权重:
{w1=0.2,w2=0.5,w3=5,w4=1,w5=0.25,w6=0.75}
L2 正则化项为 26.915:

但是, w3 (上文加粗)的平方值为 25,几乎贡献了所有复杂度。所有其他五种权重的平方和仅为 L2 正则化项加上 1.915。
在这里插入图片描述

2.1补充1: 过拟合(overfitting)、 欠拟合

机器学习中最棘手的障碍之一:过拟合(overfitting)、欠拟合。

2.1.1过拟合:

1.理解:学习器把训练样本学得"太好了",很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化能力下降,这就是过拟合。

2.概念:过拟合指的是模型在训练数据上表现很好,但在未见过的测试数据上表现较差的情况。过拟合发生的原因是模型过于复杂,能够记住训练数据的细节和噪声,而不是学习数据的通用模式。
3.特征:

  • 模型在训练数据上的准确度高。
  • 模型在测试数据上的准确度较低。
  • 模型的参数数量过多,容易记忆训练数据。

4.常见引起过拟合的原因

  • 建模样本选取有误,如样本数量太少,选样方法错误,样本标签错误等,导致选取的样本数据不足以代表预定的分类规则;
  • 样本噪音干扰过大,使得机器将部分噪音认为是特征从而扰乱了预设的分类规则;
  • 假设的模型无法合理存在,或者说是假设成立的条件实际并不成立;
  • 参数太多,模型复杂度过高。

5.防止过拟合的方法:

  • 数据集扩增:增加更多的训练数据,可以减少过拟合的风险。
  • 正则化:通过添加正则化项,如L1正则化(Lasso)或L2正则化(Ridge),来惩罚模型参数的大小,使模型更简单。
  • 特征选择:选择最重要的特征,降低模型的复杂度。
  • 交叉验证:使用交叉验证来估计模型的性能,选择最佳的模型参数。
  • 早停止:在训练过程中监控验证集的性能,当性能开始下降时停止训练,以防止过拟合。

2.1.2欠拟合:

1.理解:就是模型没有很好地捕捉到数据特征,不能够很好地拟合数据。

2.概念: 欠拟合表示模型太过简单,无法捕获数据中的关键特征和模式。模型在训练数据和测试数据上的性能都较差。

3.特征:

  • 模型在训练数据上的准确度较低。
  • 模型在测试数据上的准确度也较低。
  • 模型可能太简单,参数数量不足。

4.防止欠拟合的方法:

  • 增加模型复杂度:使用更复杂的模型,例如增加神经网络的层数或增加决策树的深度。
  • 增加特征:添加更多的特征或进行特征工程,以捕获更多数据的信息。
  • 减小正则化强度:如果使用了正则化,可以降低正则化的强度,使模型更灵活。
  • 调整超参数:调整模型的超参数,如学习率、批量大小等,以改善模型的性能。
  • 使用更多数据:如果可能的话,增加训练数据可以提高模型的性能。
    过拟合和欠拟合都是需要非常注意的问题。选择合适的模型复杂度、正则化方法和特征工程技巧可以帮助在训练机器学习模型时避免这些问题,获得更好的泛化性能。

3.简化正则化:Lambda

模型开发者通过以下方式来调整正则化项的整体影响:用正则化项的值乘以名为 lambda(也称为正则化率)的标量。也就是说,模型开发者旨在执行以下操作:
minimize(Loss(Data|Model)+� complexity(Model))

执行 L2 正则化会对模型产生以下影响

  • 使权重值接近于 0(但并非正好为 0)
  • 使权重的平均值接近 0,并且呈正态(钟形或高斯)分布。
    增加 lambda 值会增强正则化效果。例如,lambda 值较高的权重直方图可能如图 2 所示。 图 2. 权重直方图。
    在这里插入图片描述

降低 lambda 的值往往会生成一个更扁平的直方图,如图 3 所示。
在这里插入图片描述
图 3. 由较低的 lambda 值生成的权重直方图。

选择 lambda 值时,目标是在简单性和训练数据拟合之间取得适当的平衡:
  • 如果 lambda 值过高,则模型会非常简单,但是您将面临数据欠拟合的风险。模型将无法从训练数据中获得足够的信息来做出有用的预测。
  • 如果 lambda 值过低,则模型会比较复杂,并且您将面临数据过拟合的风险。您的模型将了解过多训练数据的特殊性,无法泛化到新数据。

注意 :将 lambda 设置为零会完全取消正则化。在这种情况下,训练仅专注于使损失降至最低,而这可能会带来最高的过拟合风险。
学习速率与 lambda 之间存在密切关联。L2 正则化值越强,使特征权重接近于 0。较低的学习速率(使用早停法)通常会产生相同的效果,因为与 0 的距离没有那么大。因此,同时调整学习速率和 lambda 可能会产生令人困惑的效果。
早停法是指在模型完全收敛之前结束训练。在实践中,以在线(连续)方式进行训练时,我们通常最终会获得一定程度的隐式早停法。也就是说,一些新趋势的数据尚不足以收敛。
如上所述,改变正则化参数的影响可能与学习速率或迭代次数变化的影响相混淆。一种有用的做法(在对固定批次的数据进行训练时)是进行足够多的迭代,这样提前停止不会产生任何影响。

4. 问题

4.1问题1:

假设某个线性模型具有 100 个输入特征:

  • 其中 10 个特征信息丰富。
  • 其中 90 个特征信息缺乏。
    假设所有特征的值都介于 -1 到 1 之间。以下哪些说法是正确的?

A.L2 正则化可能会导致模型针对某些信息缺乏的特征学习到适中的权重。√
答:出乎意料的是,当某个信息缺乏的特征恰好与标签相关联时,就会发生这种情况。在这种情况下,模型错误地将本应归于信息丰富特征的“功劳”归功于此类信息缺乏的特征。
B.L2 正则化会使大多数信息缺乏的权重正好为 0.0。×
答:L2 正则化不会倾向于使权重正好为 0.0。L2 正则化降低较大权重的程度高于降低较小权重的程度。随着权重越来越接近于 0.0,L2“推”向 0.0 的力度会减弱。
C.L2 正则化会使许多信息缺乏的权重接近(但并非正好)0.0。√
答:是的,L2 正则化会使权重接近于 0.0,但并非正好为 0.0。

4.2 问题2:

假设某个线性模型具有两个密切相关的特征;也就是说,这两个特征几乎是彼此的副本,但其中一个特征包含少量的随机噪点。如果我们使用 L2 正则化训练该模型,这两个特征的权重会发生什么变化?
A:其中一个特征的权重较大,另一个特征的权重几乎为 0.0。×
答:L2 正则化降低较大权重的程度高于降低较小权重的程度。因此,即使一个权重降低的速度比另一个快,L2 正则化也往往会使较大权重降低的速度快于较小的权重。
B:这两个特征将具有大致相等的适度权重。√
答:L2 正则化会使特征的权重大致相等,大约为模型中只有两个特征之一时权重的一半。
C:其中一个特征的权重较大,另一个特征的权重正好为 0.0。×
答:L2 正则化几乎不会使权重正好为 0.0。相比之下,L1 正则化(稍后会介绍)则会使权重正好为 0.0。

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

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

相关文章

R语言学习case12:ggplot 置信区间(多线型)

接上文:多条曲线 R语言学习case11:ggplot 置信区间(包含多子图) 在ggplot2中,每个geom函数都接受一个映射参数。然而,并非每个美学属性都适用于每个geom。你可以设置点的形状,但不能设置线的“…

群晖NAS开启FTP服务结合内网穿透实现公网远程访问本地服务

⛳️ 推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 文章目录 ⛳️ 推荐1. 群晖安装Cpolar2. 创建FTP公网地址3. 开启群晖FTP服务4. 群晖FTP远程连接5. 固定FTP公网地址6. 固定FTP…

产品经理学习-产品运营《如何策划一场活动》

互联网活动怎么玩 最常听到的有: 注册有奖、拉新有奖 签到积分 秒杀、大促、神券 和过去相比,现在活动的特征变化: 线上化、形式丰富、覆盖人群广、即时性、效果可控 什么是活动运营 通过策划不同形式的活动,进行有效的资源和…

LFU缓存(Leetcode460)

例题: 分析: 这道题可以用两个哈希表来实现,一个hash表(kvMap)用来存储节点,另一个hash表(freqMap)用来存储双向链表,链表的头节点代表最近使用的元素,离头节…

SpringBoot注解--02---常用注解汇总

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.SpringBoot 配置启动注解SpringBootApplication 2.Bean处理注解2.1 依赖注入AutoWired、Qualifier、Resource 2.2 类被 Spring 容器创建,管理 iocComp…

基于ESP8266 开发板(MCU)遥控小车

遥控小车 ​ 遥控界面 ​ 【项目源码】 第一版ESP8266 https://github.com/liyinchigithub/esp8266_car_webServerhttps://github.com/liyinchigithub/esp8266_car_webServer 第二版ESP32 GitHub - liyinchigithub/esp32-wroom-car: 嵌入式单片机 ESP32 Arduino 遥控小车&a…

第16届大广赛命题详情它来啦!

“中国大学生创造力”全国大学生广告艺术竞赛(以下简称:广播竞赛)作为高水平三维生产教育一体化、科学教育一体化竞争平台,坚持高地位,基于大模式,在19年的发展过程中,坚持道德培养人才的基础&a…

MySQL温故篇(一)SQL语句基础

一、SQL语句基础 1、SQL语言分类 DDL:数据定义语言 DCL:数据控制语言 DML:数据操作语言 DQL:数据的查询语言 2、数据类型 3、字符类型 char(11) : 定长 的字符串类型,在存储字符串时,最大字符长度11个&a…

TypeError: wave.ensureState is not a function 水球图引入报错问题

TypeError: wave.ensureState is not a function 水球图引入报错问题 什么问题? 版本问题 echarts4.x 版本 适用于 echarts-liquidfill2.x.x版本 echarts5.x 版本 适用于 echarts-liquidfill3.x.x版本 完美解决

使用PDFBox实现pdf转其他图片格式

最近在做一个小项目&#xff0c;项目中有一个功能要把pdf格式的图片转换为其它格式&#xff0c;接下来看看用pdfbox来如何实现吧。 首先导入pdfbox相关依赖&#xff1a; <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</a…

【FPGA】快速学习路径

FPGA学习教程、功利式学习路径、以找工作为目的&#xff0c;早日入门FPGA_哔哩哔哩_bilibili

解决git切换分支导致代码丢失的问题

问题描述&#xff1a; 最近写项目时&#xff0c;我在主分支&#xff08;master分支&#xff09;上面写的代码&#xff0c;但是我没有提交&#xff08;Commit&#xff09;到Git上。但是又碰到一个新的需求&#xff0c;所以需要去新建一个分支&#xff0c;当我切换到新建的分支&a…

【C语言初阶-const作用详解】const修饰变量、const修饰指针(图文详解版)

少年&#xff0c;做你认为对的事 目录 少年&#xff0c;做你认为对的事 1.const修饰变量 2.const修饰指针&#xff08;重要&#xff09; 代码1&#xff1a; 代码2&#xff1a; 代码3&#xff1a; ​编辑 3.结论 1.const修饰变量 const修饰变量将变量赋予了常量属性…

SpringBoot Security安全认证框架初始化流程认证流程之源码分析

SpringBoot Security安全认证框架初始化流程&认证流程之源码分析 以RuoYi-Vue前后端分离版本为例分析SpringBoot Security安全认证框架初始化流程&认证流程的源码分析 目录 SpringBoot Security安全认证框架初始化流程&认证流程之源码分析一、SpringBoot Security安…

(源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模

本篇文章是: 2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模的源码版本,包含具体建模代码到生成模型步骤。那么废话不多说直接开始展示建模过程建模: 数据预处理 之前我给大家提供的一年的风暴数据是远远不够的,要做时…

CentOS镜像如何下载?在VMware中如何安装?

一、问题 CentOS镜像如何下载&#xff1f;在VMware中如何安装&#xff1f; 二、解决 1、CentOS镜像的下载 &#xff08;1&#xff09;官方网站 The CentOS Project &#xff08;2&#xff09;官方中文官网 CentOS 中文 官网 &#xff08;3&#xff09;选择CentOS Linux…

机器学习数据预处理方法(基本信息探索)##1

文章目录 基于Kaggle电信用户流失案例数据&#xff08;可在官网进行下载&#xff09;数据解读与数据预处理数据质量探索变量相关性探索分析 基于Kaggle电信用户流失案例数据&#xff08;可在官网进行下载&#xff09; 数据解读与数据预处理 建议使用jupyter lab进行运行 imp…

新书速览|PyTorch 2.0深度学习从零开始学

实战中文情感分类、拼音汉字转化、中文文本分类、拼音汉字翻译、强化学习、语音唤醒、人脸识别 01 本书简介 本书以通俗易懂的方式介绍PyTorch深度学习基础理论&#xff0c;并以项目实战的形式详细介绍PyTorch框架的使用。为读者揭示PyTorch 2.0进行深度学习项目实战的核心技…

PPYOLE

1&#xff1a;参考GitHub - PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection. 2&#xff1a;开源项目 - 飞…

CPU vs GPU:不仅仅是一字之差

当今科学技术的飞速发展&#xff0c;社会已经迈入了信息时代的智能化阶段。人脸识别、智能客服、个性化推荐等应用已经深入到日常生活的各个方面。这些看得见的应用背后&#xff0c;是看不见的算力在默默地支撑着。在满足这些高算力需求的过程中&#xff0c;CPU 和 GPU 作为计算…