当前位置: 首页 > news >正文

机器学习-归一化

文章目录

  • 一. 归一化
  • 二. 归一化的常见方法
    • 1. 最小-最大归一化 (Min-Max Normalization)
    • 2. Z-Score 归一化(标准化)
    • 3. MaxAbs 归一化
  • 三. 归一化的选择
  • 四. 为什么要进行归一化
    • 1. 消除量纲差异
    • 2. 提高模型训练速度
    • 3. 增强模型的稳定性
    • 4. 保证正则化项的有效性
    • 5. 避免数值计算问题

一. 归一化

归一化(Normalization)是数据预处理中的一种常用方法,主要用于将不同尺度的数据转换到一个统一的范围内,通常是将数据缩放到一个固定的区间,如 [0, 1] 或 [-1, 1]。归一化有助于消除特征之间的量纲差异,使得所有特征在同一个尺度上进行计算,避免某些特征对模型的训练过程产生过大影响。
在这里插入图片描述

二. 归一化的常见方法

1. 最小-最大归一化 (Min-Max Normalization)

最常见的归一化方法,将数据按比例缩放到指定的区间(通常是 [0, 1])。其公式为:

x ′ = x − min ⁡ ( x ) max ⁡ ( x ) − min ⁡ ( x ) x' = \frac{x - \min(x)}{\max(x) - \min(x)} x=max(x)min(x)xmin(x)

其中:

  • ( x ) ( x ) (x) 是原始数据;
  • ( min ⁡ ( x ) ) ( \min(x) ) (min(x)) 是数据集中的最小值;
  • ( max ⁡ ( x ) ) ( \max(x) ) (max(x)) 是数据集中的最大值;
  • ( x ′ ) ( x' ) (x) 是归一化后的数据。

优点

  • 适用于数据范围已知且具有固定上下界的情况。
  • 结果数据范围固定,便于后续操作。

缺点

  • 对于异常值非常敏感,异常值可能会拉大数据的范围,使得大部分数据集中在某一小范围内。

2. Z-Score 归一化(标准化)

Z-Score 归一化将数据转换为具有零均值和单位方差的分布,常用于需要满足正态分布假设的机器学习算法中。其公式为:

x ′ = x − μ σ x' = \frac{x - \mu}{\sigma} x=σxμ

其中:

  • ( x ) ( x ) (x) 是原始数据;
  • ( μ ) ( \mu ) (μ) 是数据集的均值;
  • ( σ ) ( \sigma ) (σ) 是数据集的标准差;
  • ( x ′ ) ( x' ) (x) 是标准化后的数据。

优点

  • 对异常值不敏感,能保持数据的分布形态。
  • 保持数据的相对差异,适用于大多数机器学习算法,尤其是需要度量距离的算法。

缺点

  • 对数据本身的分布要求较高,尤其是对于数据呈现非正态分布时,可能需要更多的处理。

正态分布
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3. MaxAbs 归一化

将每个特征值除以其最大绝对值,使得数据的范围在 [-1, 1] 之间。这种方法在数据中没有负值时,尤其适用。

x ′ = x max ⁡ ( ∣ x ∣ ) x' = \frac{x}{\max(|x|)} x=max(x)x

优点

  • 保留了稀疏矩阵的零值,适合处理稀疏数据。
  • 不改变数据的分布形态,适用于数据不含异常值的情况。

缺点

  • 数据不一定遵循均值为0的分布,可能对一些算法(如线性回归)不太适用。

三. 归一化的选择

  • 如果数据的数值范围已知且有明确的上下限(如图像像素值通常在[0, 255]之间),使用 最小-最大归一化 比较合适。
  • 如果数据的分布较为均匀,且目标是让特征符合标准正态分布,使用 Z-Score 归一化(标准化) 更为合适。
  • 如果数据本身已经分布得很好,且不希望改变分布特性,可以选择 MaxAbs 归一化

总之,归一化是对特征进行尺度调整的过程,选择合适的归一化方法能够显著提高模型的表现和训练效率。

四. 为什么要进行归一化

1. 消除量纲差异

不同特征可能有不同的单位或量纲,例如,某些特征可能是温度(单位是摄氏度或华氏度),而其他特征可能是收入(单位是人民币、美元等)。这些特征的数值范围可能相差很大。比如,温度可能在0到100之间,而收入可能在几千到几百万之间。如果不进行处理,这种量纲差异可能会导致一些特征在模型中占主导地位,影响模型的学习效果。
归一化:将数据缩放到一个固定的范围(如[0, 1])。这样可以消除量纲差异,让每个特征在同一尺度上进行处理。
标准化:通过去除均值并除以标准差,使数据具有零均值和单位方差。标准化后的数据使得每个特征的分布更加一致,便于算法进行处理。

2. 提高模型训练速度

许多机器学习算法,特别是基于梯度下降的算法(如线性回归、逻辑回归、神经网络等),对特征的尺度非常敏感。如果数据的尺度不一致,某些特征可能对梯度的更新产生较大影响,而其他特征则几乎没有影响。这样会导致优化过程收敛速度慢,甚至不收敛。

通过归一化或标准化,可以确保所有特征对模型的贡献大致相同,从而加快收敛速度,避免梯度爆炸或梯度消失问题。

3. 增强模型的稳定性

一些模型,如支持向量机(SVM)、K-近邻(KNN)和K-means聚类等,基于距离度量(如欧式距离、曼哈顿距离等)来进行预测或分类。如果特征的尺度差异较大,模型计算距离时,尺度较大的特征会主导距离计算,从而影响预测结果。通过归一化或标准化,特征尺度变得一致,能提高模型的稳定性和预测准确性。

4. 保证正则化项的有效性

在一些机器学习算法中,正则化项(如L2正则化)用于控制模型的复杂度,避免过拟合。如果特征的尺度差异较大,某些特征可能会对正则化项产生较大影响,导致模型偏向某些特征,进而影响模型的泛化能力。归一化或标准化后,正则化项会对所有特征产生更均衡的影响,有助于提高模型的鲁棒性。

5. 避免数值计算问题

在某些机器学习算法中,如果输入数据的数值范围过大,可能会导致计算中的数值稳定性问题。例如,在神经网络中,输入数据的数值过大可能导致梯度更新过程不稳定,进而影响训练过程。通过归一化或标准化,可以避免这种数值计算问题。

相关文章:

机器学习-归一化

文章目录 一. 归一化二. 归一化的常见方法1. 最小-最大归一化 (Min-Max Normalization)2. Z-Score 归一化(标准化)3. MaxAbs 归一化 三. 归一化的选择四. 为什么要进行归一化1. 消除量纲差异2. 提高模型训练速度3. 增强模型的稳定性4. 保证正则化项的有效…...

Linux 串口检查状态的实用方法

在 Linux 系统中,串口通信是非常常见的操作,尤其在嵌入式系统、工业设备以及其他需要串行通信的场景中。为了确保串口设备的正常工作,检查串口的连接状态和配置信息是非常重要的。本篇文章将介绍如何在 Linux 上检查串口的连接状态&#xff0…...

Qt的核心机制概述

Qt的核心机制概述 1. 元对象系统(The Meta-Object System) 基本概念:元对象系统是Qt的核心机制之一,它通过moc(Meta-Object Compiler)工具为继承自QObject的类生成额外的代码,从而扩展了C语言…...

微调神经机器翻译模型全流程

MBART: Multilingual Denoising Pre-training for Neural Machine Translation 模型下载 mBART 是一个基于序列到序列的去噪自编码器,使用 BART 目标在多种语言的大规模单语语料库上进行预训练。mBART 是首批通过去噪完整文本在多种语言上预训练序列到序列模型的方…...

Cesium加载地形

Cesium的地形来源大致可以分为两种,一种是由Cesium官方提供的数据源,一种是第三方的数据源,官方源依赖于Cesium Assets,如果设置了AccessToken后,就可以直接使用Cesium的地形静态构造方法来获取数据源CesiumTerrainPro…...

gitlab runner正常连接 提示 作业挂起中,等待进入队列 解决办法

方案1 作业挂起中,等待进入队列 重启gitlab-runner gitlab-runner stop gitlab-runner start gitlab-runner run方案2 启动 gitlab-runner 服务 gitlab-runner start成功启动如下 [rootdocserver home]# gitlab-runner start Runtime platform …...

C#对动态加载的DLL进行依赖注入,并对DLL注入服务

文章目录 什么是依赖注入概念常用的依赖注入实现什么是动态加载定义示例对动态加载的DLL进行依赖注入什么是依赖注入 概念 依赖注入(Dependency Injection,简称 DI)是一种软件设计模式,用于解耦软件组件之间的依赖关系。在 C# 开发中,它主要解决的是类与类之间的强耦合问题…...

HDMI接口

HDMI接口 前言各版本区别概述(Overview)接口接口类型Type A/E 引脚定义Type B 引脚定义Type C 引脚定义Type D 引脚定义 传输流程概述Control Period前导码字符边界同步Control Period 编/解码 Data Island PeriodLeading/Trailing Guard BandTERC4 编/解…...

A/B 测试:玩转假设检验、t 检验与卡方检验

一、背景:当“审判”成为科学 1.1 虚拟场景——法庭审判 想象这样一个场景:有一天,你在王国里担任“首席审判官”。你面前站着一位嫌疑人,有人指控他说“偷了国王珍贵的金冠”。但究竟是他干的,还是他是被冤枉的&…...

第143场双周赛:最小可整除数位乘积 Ⅰ、执行操作后元素的最高频率 Ⅰ、执行操作后元素的最高频率 Ⅱ、最小可整除数位乘积 Ⅱ

Q1、最小可整除数位乘积 Ⅰ 1、题目描述 给你两个整数 n 和 t 。请你返回大于等于 n 的 最小 整数,且该整数的 各数位之积 能被 t 整除。 2、解题思路 问题拆解: 题目要求我们找到一个整数,其 数位的积 可以被 t 整除。 数位的积 是指将数…...

【STM32】LED状态翻转函数

1.利用状态标志位控制LED状态翻转 在平常编写LED状态翻转函数时,通常利用状态标志位实现LED状态的翻转。如下所示: unsigned char led_turn_flag; //LED状态标志位,1-点亮,0-熄灭/***************************************函…...

uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?

前言 在开发微信小程序时,使用 textarea 组件可能会遇到一些棘手的问题。最近我在使用 uniapp 开发微信小程序时,就遇到了两个非常令人头疼的问题: 层级穿透:由于 textarea 是原生组件,任何元素都无法遮盖住它。当其…...

汽车 SOA 架构下的信息安全新问题及对策漫谈

摘要:随着汽车行业的快速发展,客户和制造商对车辆功能的新需求促使汽车架构从面向信号向面向服务的架构(SOA)转变。本文详细阐述了汽车 SOA 架构的协议、通信模式,并与传统架构进行对比,深入分析了 SOA 给信…...

Unity-Mirror网络框架-从入门到精通之RigidbodyPhysics示例

文章目录 前言示例一、球体的基础配置二、三个球体的设置差异三、示例意图LatencySimulation前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开…...

小程序如何引入腾讯位置服务

小程序如何引入腾讯位置服务 1.添加服务 登录 微信公众平台 注意:小程序要企业版的 第三方服务 -> 服务 -> 开发者资源 -> 开通腾讯位置服务 在设置 -> 第三方设置 中可以看到开通的服务,如果没有就在插件管理中添加插件 2.腾讯位置服务…...

H3CNE-12-静态路由(一)

静态路由应用场景: 静态路由是指由管理员手动配置和维护的路由 路由表:路由器用来妆发数据包的一张“地图” 查看命令: dis ip routing-table 直连路由:接口配置好IP地址并UP后自动生成的路由 静态路由配置: ip…...

多线程锁

在并发编程中,锁(Lock)是一种用于控制多个线程对共享资源访问的机制。正确使用锁可以确保数据的一致性和完整性,避免出现竞态条件(Race Condition)、死锁(Deadlock)等问题。Java 提供…...

ZooKeeper 核心知识全解析:架构、角色、节点与应用

1.ZooKeeper 分布式锁怎么实现的 ZooKeeper 是一个高效的分布式协调服务,它提供了简单的原语集来构建更复杂的同步原语和协调数据结构。利用 ZooKeeper 实现分布式锁主要依赖于它的顺序节点(Sequential Node)特性以及临时节点(Ep…...

笔记本电脑 选购 回收 特权模式使用 指南

笔记本电脑 factor 无线网卡:有些笔记本无法检测到特定频段的信息,会导致连不上校园网 sudo iwlist wlp2s0 scan | grep Frequency > net.txt cat net.txt>表示用终端输出覆盖后续文件,>>表示添加到后续文件的末尾 一种更简…...

2023-2024 学年 广东省职业院校技能大赛(高职组)“信息安全管理与评估”赛题一

2023-2024 学年 广东省职业院校技能大赛(高职组“信息安全管理与评估”赛题一) 模块一:网络平台搭建与设备安全防护第一阶段任务书任务 1:网络平台搭建任务 2:网络安全设备配置与防护DCRS:DCFW:DCWS:DCBC:WAF: 模块二:网络安全事件…...

【kafka】Golang实现分布式Masscan任务调度系统

要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

rknn优化教程(二)

文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...