深度学习中常见的四种数据标准化方法详细解读(StandardScaler、MinMaxScaler、RobustScaler、MaxAbsScaler)

news2024/9/26 5:18:12

目录

1. 前提摘要

2. 标准化方法 

2.1 StandardScaler

2.1.1 计算方法

2.1.2 计算公式

2.1.3 适用场景

2.2 MinMaxScaler

2.2.1 计算方法

2.2.2 计算公式

2.2.3 适用场景

2.3 RobustScaler

2.3.1 计算方法

2.3.2 计算公式

2.3.3 适用场景

2.4 MaxAbsScaler 

2.4.1 计算方法

2.4.2 计算公式

2.4.3 适用场景

3. 代码及拓展


1. 前提摘要

        最近,本人在优化深度神经网络模型时发现为了减少预测标签值和真实标签值之间差距,不仅仅需提高模型本身的性能,还关乎于标签值标准化、数据集划分、模型超参数等一系列初始设定。其中后两项的实验内容俗称“炼丹”,很多研究人员已经炉火丹青,运筹帷幄,唯独标签值标准化容易被人忽略。一个优秀的标准化方法不仅能提高模型训练的稳定性,加速收敛,还能增强模型测试性能,可谓是中流砥柱。

        现有模型训练大多默认选用 StandardScaler(),这本没错,但是如果能够参考标签值分布尝试其他方法,并修改为适合的激活函数,无论是回归还是分类任务均能小小的涨点。上篇文章已经粗略的介绍了大部分标准化方法,本次来详细谈谈常见的四种标准化方法。在您为涨点头疼时,尝试下每种标准化方法,或许会有奇效。

2. 标准化方法 

2.1 StandardScaler

        StandardScaler 是一种最常见的数据标准化方法,用于将特征按其均值和标准差进行缩放。它将数据调整为均值为0,标准差为1,使得每个特征的数据都服从标准正态分布。标准化有助于在训练过程中更稳定地优化模型参数,特别是对于依赖于特征大小的算法。

2.1.1 计算方法

StandardScaler 的主要步骤如下:

  1. 计算每个特征的均值: 对于给定数据集中的每个特征,计算其均值 \mu

  2. 计算每个特征的标准差: 计算每个特征的标准差 \sigma

  3. 缩放数据: 将每个特征的值减去该特征的均值,再除以该特征的标准差,使得缩放后的数据均值为0,标准差为1。

2.1.2 计算公式

X_{\text {scaled }}=\frac{X-\mu}{\sigma}

其中,X 是原始数据,\mu 是特征的均值,\sigma 是特征的标准差。

2.1.3 适用场景

StandardScaler 适用于以下场景:

        数据符合正态分布: 当数据的大多数特征接近正态分布时,使用 StandardScaler 可以让每个特征有相同的量纲。

        算法对特征缩放敏感: 许多机器学习算法(如支持向量机、K均值聚类和神经网络等)对输入特征的缩放敏感,因此使用 StandardScaler 可以提高模型的收敛速度和性能。

2.2 MinMaxScaler

        MinMaxScaler 是一种数据归一化方法,用于将特征缩放到一个指定的范围内,通常是 [0, 1]。该方法将每个特征线性转换到给定的最小值和最大值之间,确保数据的最小值为0,最大值为1(或其他指定范围)。这是最常见的数据归一化方法之一。

2.2.1 计算方法

MinMaxScaler 的主要步骤如下:

  1. 计算每个特征的最小值和最大值: 对于给定数据集中的每个特征,计算其最小值 X_{\min }​ 和最大值 X_{\max }

  2. 缩放数据: 将每个特征的值按以下公式缩放到指定范围(通常是 [0, 1])。

2.2.2 计算公式

X_{\text {scaled }}=\frac{X-X_{\min }}{X_{\max }-X_{\min }}

其中,X 是原始数据,X_{\min }​ 是特征的最小值,X_{\max }​ 是特征的最大值。

2.2.3 适用场景

MinMaxScaler 适用于以下场景:

        数据不符合正态分布: 当数据不服从正态分布且存在显著的偏态时,MinMaxScaler 可以有效地将数据缩放到同一范围内。

        对范围有特定要求: 例如,在某些情况下需要将所有特征的值缩放到 [0, 1] 或 [0, n] 的范围,以满足算法或系统的要求。

        保持特征的相对关系: MinMaxScaler 保持了原始数据的特征之间的比例和距离,仅改变了数据的范围。

2.3 RobustScaler

        RobustScaler 是一种数据标准化方法,它利用数据的中位数和四分位数范围(IQR)进行缩放和中心化。与传统的 StandardScaler 使用均值和标准差不同,RobustScaler 对异常值(outliers)不敏感,因此在数据中存在离群点时更为稳健。

2.3.1 计算方法

RobustScaler 的主要步骤如下:

  1. 中心化(Centering): 将数据的每个特征的中位数(median)减去,使数据中心化到零。

  2. 缩放(Scaling): 使用四分位数范围(IQR,Interquartile Range)缩放数据。四分位数范围是指数据的第75百分位数(Q3)和第25百分位数(Q1)之间的差。

2.3.2 计算公式

X_{\text {scaled }}=\frac{X-\operatorname{median}(X)}{\operatorname{IQR}(X)}

其中,X 表示原始数据,\operatorname{median}(X) 表示数据的中位数,\operatorname{IQR}(X) 表示四分位数范围。

2.3.3 适用场景

RobustScaler 非常适合于以下场景:

        数据中存在显著的离群点(outliers),而这些离群点对标准化过程不应有过多影响。

        数据不服从正态分布,且存在偏态分布的情况。

        通过使用中位数和四分位数范围,而不是均值和标准差,RobustScaler 能更好地处理异常值,使得这些离群点不会对数据的缩放和中心化产生过大的影响。这使得模型在训练过程中能更好地适应数据的总体特征,而不受极端值的影响。

2.4 MaxAbsScaler 

        MaxAbsScaler 是一种数据标准化方法,用于将特征缩放到 [-1, 1] 的范围内。与其他标准化方法不同,MaxAbsScaler 不会改变数据的中心化位置(即数据的均值仍可能不是零),而是将数据的每个特征按其最大绝对值进行缩放。

2.4.1 计算方法

MaxAbsScaler 的主要步骤如下:

  1. 计算每个特征的最大绝对值: 对于给定数据集中的每个特征,计算其最大绝对值 M。

  2. 缩放数据: 将每个特征的值除以该特征的最大绝对值,使得缩放后的数据在 [-1, 1] 的范围内。

2.4.2 计算公式

X_{\text {scaled }}=\frac{X}{M}

其中,X 是原始数据,M 是每个特征的最大绝对值。

2.4.3 适用场景

MaxAbsScaler 非常适合于以下场景:

        稀疏数据: MaxAbsScaler 不会破坏数据的稀疏性。由于其缩放操作是逐元素进行的,没有减去均值的步骤,所以对稀疏矩阵不会增加非零元素的数量。

        数据已经是中心化的: 如果数据的均值本身已经是零或接近零,而仅需要控制其幅度范围。

        由于 MaxAbsScaler 仅对特征值进行缩放而不改变数据的分布形状,它适用于数据的绝对值范围相对较小且不包含极端值的情况。如果数据包含极端的离群点,这些点可能会对缩放的结果产生较大影响。

3. 代码及拓展

import numpy as np
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler, MaxAbsScaler
 
# 示例数据
data = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
 
# StandardScaler
standard_scaler = StandardScaler()
data_standard_scaled = standard_scaler.fit_transform(data)
print("StandardScaler:", data_standard_scaled)
 
# MinMaxScaler
minmax_scaler = MinMaxScaler()
data_minmax_scaled = minmax_scaler.fit_transform(data)
print("MinMaxScaler:", data_minmax_scaled)
 
# RobustScaler
robust_scaler = RobustScaler()
data_robust_scaled = robust_scaler.fit_transform(data)
print("RobustScaler:", data_robust_scaled)
 
# MaxAbsScaler
max_abs_scaler = MaxAbsScaler()
data_max_abs_scaled = max_abs_scaler.fit_transform(data)
print("MaxAbsScaler:", data_max_abs_scaled)
 

 更多内容请访问上篇文章:

深度学习中几种常见数据标准化方法_深度学习数据标准化-CSDN博客

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

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

相关文章

一篇文章让你用我的世界中的红石搞懂什么是ALU!

目录 1.一些在开始的约定 2.七大逻辑门电路 1、 与门 2、 或门 3、 非门 5、 或非门 6、 异或门 7、 同或门 3.半加器 4.全加器 5.ALU 1.一些在开始的约定 相同的概念:相同的概念:高电平低电平逻辑真逻辑假 开关的开 开关的关 灯的亮 灯…

聚鼎科技:装饰画怎么做盈利更快

在当今社会,艺术与商业的界限日渐模糊,装饰画作为一种独特的艺术形式,不仅美化了空间,同时也成为了一种盈利的途径。要在竞争激烈的市场中脱颖而出,实现盈利最大化,创作者及销售者必须采取一些明智的策略。…

19 注意力机制

目录 1.注意力机制从心理学的角度出发注意力机制非参注意力池化层Nadaraya-Watson 核回归:总结注意力汇聚:Nadaraya-Watson 核 代码实现非参数注意力汇聚(非参数注意力池化)注意力权重参数注意力汇聚(参数注意力池化)2.注意力分数如何将 key 和 value 拓展到更高的维度掩…

C#图片批量下载Demo

目录 效果 项目 代码 下载 效果 C#图片批量下载 项目 代码 using Aspose.Cells; using NLog; using System; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.…

【zookeeper 第六篇章】分布式锁

一、分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。 二、zookeeper 分布式锁 1、客户端A创建临时顺序节点 demo。并在节点下创建 x_00000001。 2、客户端A判断是否自己是第一个节点,如果是就锁成功。 3、客户端B创建临时顺序节点 demo。 并…

文件操作及面试题

目录 文本文件和二进制文件 File概述 递归去查看某个目录下的所有文件与目录 InputStream概述 OutputStream 概述 文件操作的应用 面试题:递归文件路径并且删除指定文件 将一个指定路径的文件复制到另一个文件中去 1.文件 此处的文件有多种含义&#xff0c…

基于京东家电数据分析与价格预测研究【爬虫、Pyecharts、Flask、机器学习】《商品可换》

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍研究背景研究目的研究意义数据获取数据预处理数据分析与可视化大屏可视化基于Flask的系统框架集成价格预测模型每文一语 有需要本项目的代码或文档以及全部资源,或者部署…

去字节面试大模型算法岗,体验极佳!!

最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…

拳击与格斗杂志拳击与格斗杂志社拳击与格斗编辑部2024年第4期目录

搏击研究 拳击运动员灵敏素质训练策略研究 巫金君; 4-6 拳击运动员体能训练的方法与策略 彭天泽;任安萍;高刚; 7-9 高校武术教学与体能训练的结合研究 黄昊; 10-12《拳击与格斗》投稿:cn7kantougao163.com 拳击运动员核心力量训练研究 宋林董;张钰涵…

漏洞挖掘之再探某园区系统

漏洞挖掘之再探某园区系统 上次提到还有一处可能存在任意用户登录的点,最近没什么研究就写一下,顺便看看还有其他漏洞不 0x01 任意用户登录 1、漏洞分析 通过上次提到的搜索new UserBean()的思路,发现还有一处创建用户的方法 public voi…

FPGA设计之跨时钟域(CDC)设计篇(4)----多bit信号的跨时钟域(CDC)处理方法(手撕代码)

1、为什么多bit信号跨时钟域与单bit不同 ? 跨时钟域的处理可以分为两个大类:单Bit信号跨时钟域处理、多Bit信号跨时钟域处理。分类的原因是多bit信号的传递不光只有亚稳态这一个问题,还可能会因为多个信号之间由于工艺、PCB布局等因素导致的信号传输延时(skew)的存在,从而…

【机器学习第8章——集成学习】

机器学习第8章——集成学习 8.集成学习8.1个体与集成弱分类器之间的关系组合时,如何选择学习器怎么组合弱分类器boosting和Bagging 8.2 BoostingAdaBoost算法步骤训练过程 8.3 Bagging与随机森林随机采样(bootstrap)弱学习器结合策略方差与偏差算法流程随机森林 8.4…

2024华硕迷你主机选购指南:全系列覆盖

在选择迷你主机时,消费者往往面临多种选择,而华硕作为知名的电脑硬件制造商,提供了多款性能各异的迷你主机以满足不同用户的需求。在面对华硕迷你主机的选择时,不同的需求和偏好将带领我们走向不同的选择。对于游戏爱好者&#xf…

谈谈我用BaaS开发应用的一年感受

作为一个独立开发者,我一直在寻找高效、便捷的开发工具,直到遇见了MemFire Cloud。今天,我想和大家分享一下我用这款BaaS(Backend as a Service)开发应用一年的感受。 初识MemFire Cloud 最初接触MemFire Cloud&#…

大模型正在重蹈AI的覆辙?

[ 科技圈这两年什么概念和技术最火?——大模型。 当大模型刚出现的时候,可能谁都不会想到,有一天会如此爆火。 据不完全统计,2020年至2023年间,中国已经发布的参数在10亿规模以上的大模型,就超过80个。 …

8.3 修改mysqld_exporter源码 ,改造成类似blackbox的探针型,实现一对多探测

本节重点介绍 : 官方的mysqld_exporter问题 只能一对一不能像探针一样采集多个实例dsn需要配置环境变量或者配置文件解析 需求说明 改造成类似blackbox的探针型,实现一对多探测改造方案 修改源码prometheus配置文件传参和实例地址获取改造grafana大盘配置成可以切换…

【实用指南】如何选择最适合您的圆形连接器?

圆形连接器是一种电子连接器,其基本结构为圆柱形并且拥有圆形的配合面,这种设计使得它们在物理上区别于矩形或其他形状的连接器。它们通常用于设备之间的互连,属于互连分类中的第5类。 圆形连接器的主要组成部分包括: 插头&#…

引用率全球Top2%大佬耗时几年编写深度学习神书分享!!

介绍 这本深度学习书籍是由一位拥有多重职称和荣誉的顶尖科学家所打造,被评为全球引用率最高的2%科学家之一。这本书被认为是目前最全面系统的深度学习著作,涵盖了深度学习的主流算法模型,对于研究生和博士生具有极高的参考价值。这份完整版…

FPGA的工作本科可以做吗?

在FPGA行业中,这样的偏见一直存在。 很多人认为,只有985、211的硕士才有资格涉足这一领域,甚至有人表示,即使是9、2本硕也难以找到工作,本科生就不要想了。 难到真的只有985,211的研究生才能有机会入行FPG…

人工智能深度学习系列—GANs的对抗博弈:深入解析Adversarial Loss

文章目录 1. 背景介绍2. Adversarial Loss计算公式3. 使用场景4. 代码样例5. 总结 1. 背景介绍 生成对抗网络(GANs)作为深度学习中的一大突破,其核心机制是通过对抗性训练生成逼真的数据。Adversarial Loss,即对抗性损失&#xf…