Normalization and Standardization

数据标准化在机器学习中至关重要,它消除不同特征的量纲影响,确保可比性。归一化方法包括线性归一化(如Min-max和Z-Score),适用于不同场景。Z-Score常用于度量相似性或PCA降维。非线性方法如log对数和反正切函数归一化适应特定数据分布。L2范数归一化则用于特征向量的规范化。Python库提供了这些方法的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要Normalization and Standardization

在机器学习领域中,不同评价指标(即特征向量中的不同特征就是所述的不同评价指标)往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,

为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

奇异样本数据的存在会引起训练时间增大,同时也可能导致无法收敛,因此,当存在奇异样本数据时,在进行训练之前需要对预处理数据进行归一化;反之,不存在奇异样本数据时,则可以不进行归一化。

目的: 将不同尺度上的评判结果统一到一个尺度上,从而可以作比较,作计算
好处:1)加快了梯度下降求最优解的速度,加快训练网络的收敛性;2)有可能体高精度

归一化的方法

线性归一化 (Min-max normalization 、0-1 normalization)

转换函数:
X i ∗ = X i − X m i n X m a x − X m i n X_i^* = \frac{X_i-X_{min}}{X_{max}-X_{min}} Xi=XmaxXminXiXmin

  1. 这个方法将一列数据变化到某个固定区间(范围)中,通常这个区间是[0, 1],也可以是各种区间比如[0,255],[-1,1]等。
    如果想要将数据映射到[-1,1],则将公式换成:
    X i ∗ = X i − X m e a n X m a x − X m i n X_i^* = \frac{X_i-X_{mean}}{X_{max}-X_{min}} Xi=XmaxXminXiXmean (X_mean表示均值)

  2. 这种方法比较适用在数值比较集中的情况。缺陷:如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量来替代max和min。否则当有新数据加入时,可能导致max和min的变化,需要重新定义。

  3. 应用场景:在不涉及距离度量、协方差计算、数据不符合正态分布的时候,可以使用第一种方法或其他归一化方法(不包括Z-score方法)。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围

Z-score标准化

Z-Score 又叫 stand score, z-value, z-score, normal score等, 中文一般译作“标准分数”。它是对某一原始分值进行转换,变成的一个标准分值,该标准分值可使得原来无法比较的数值变得可比。 一个简单的例子,小红英语考了 90 分,语文考了 60 分,请问小红英语和语文哪个考的好? 同样的情况,如果直接比分数,当然是英语好。但是一种显然易见的可能情况是,两门课的难度不一样,也许语文更难,大家都不及格,只有小红及格了;而英语很简单大家都是100分,只有小红90分。这样看来,好像小红的语文要考的更好一些。这里我们可以用 z-score 可以直观的进行比较。
Z-Score转换函数:
X i ∗ = X i − μ σ X_i^* = \frac{X_i-\mu}{\sigma} Xi=σXiμ
其中 μ \mu μ σ \sigma σ 分别为原始数据集的均值和方差。

  1. 该方法将数据变换为均值为0,标准差为1的分布(并不一定是正态分布)。
  2. 该方法其实也是”线性归一化“的一种。
  3. 该种归一化方式要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。
  4. 应用场景:在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

神经网络归一化

该归一化方法经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。
包括 log对数函数归一化,反正切函数归一化等方法。需要根据数据分布的情况,来决定所使用的非线性函数曲线。

log对数函数归一化 - 转换函数:
X i ∗ = l o g 10 ( x ) l o g 10 ( m a x ) X_i^* = \frac{log_{10}(x)}{log_{10}(max)} Xi=log10(max)log10(x)
反正切函数归一化 - 转换函数:
X i ∗ = a t a n ( x ) ∗ 2 π X_i^* = \frac{atan(x)*2}{\pi} Xi=πatan(x)2

L2范数归一化

L2范数归一化就是特征向量中的每个元素均除以向量的L2范数norm(L2):
向量x(x1,x2,…xn)的L2范数定义为 : n o r m ( x ) = x 1 2 + x 2 2 + . . . + x n 2 norm(x) = \sqrt{x_1^2 + x_2^2 + ... +x_n^2} norm(x)=x12+x22+...+xn2
L2范数归一化转换函数为: X i ∗ = X i n o r m ( x ) X_i^* = \frac{X_i}{norm(x)} Xi=norm(x)Xi

应用场景

Python实现举例

参考资料

【1】https://blog.youkuaiyun.com/weixin_36604953/article/details/102652160
【2】https://www.jianshu.com/p/967f2199cd8c
【3】https://blog.youkuaiyun.com/yjw123456/article/details/106252908
【4】https://zhuanlan.zhihu.com/p/424518359
【5】https://zhuanlan.zhihu.com/p/488290289
【6】https://blog.youkuaiyun.com/yjw123456/article/details/106252908
【7】https://www.cnblogs.com/pejsidney/p/8031250.html
【8】https://blog.youkuaiyun.com/weixin_43681559/article/details/126918889
【9】http://thisis.yorven.site/blog/index.php/2019/05/07/lijie-z-score/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值