归一化 (Normalization)、标准化 (Standardization)和中心化/零均值化 (Zero-centered)

本文详细介绍了数据预处理中的归一化和标准化方法,包括两者的定义、作用原理、常见应用场景及实现方式。并探讨了这两种方法如何提升机器学习模型的性能。

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

1 概念

1.1 归一化

1)把数据变成(0,1)或者(1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。2)把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。

1.2 标准化

在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。

1.3 中心化

平均值为0,对标准差无要求
x’ = x - μ

1.4 区别

归一化和标准化的区别:
  归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,仅由变量的极值决定,因区间放缩法是归一化的一种。
  标准化是依照特征矩阵的列处理数据,其通过求z-score的方法,转换为标准正态分布,和整体样本分布相关,每个样本点都能对标准化产生影响。它们的相同点在于都能取消由于量纲不同引起的误差;都是一种线性变换,都是对向量X按照比例压缩再进行平移。
  标准化和中心化的区别
  标准化是原始分数减去平均数然后除以标准差,中心化是原始分数减去平均数。 所以一般流程为先中心化再标准化。
  无量纲:我的理解就是通过某种方法能去掉实际过程中的单位,从而简化计算。

2 为什么要归一化/标准化?

如前文所说,归一化/标准化实质是一种线性变换,线性变换有很多良好的性质,这些性质决定了对数据改变后不会造成“失效”,反而能提高数据的表现,这些性质是归一化/标准化的前提。比如有一个很重要的性质:线性变换不会改变原始数据的数值排序。
1)归一化后加快了梯度下降求最优解的速度
2)归一化有可能提高精度
https://zhuanlan.zhihu.com/p/27627299
https://zhuanlan.zhihu.com/p/30358160

3 常见的方法

3.1 Min-Max Normalization(归一化方法)

在这里插入图片描述
其中max为当前样本数据中, 该属性的最大值, min为最小值.
本质:将数据映射到(0,1)或者(-1,1)
这种方法处理速度快, 但是, 当有新的数据加入时, max和min发生变化, 需要重新归一化。
如果想要将数据映射到(-1,1),则将公式换成:(X-Mean)/(Max-Min)

3.2 Z-score standardization(标准化方法)

这种方法给予原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1,转化函数为:
在这里插入图片描述
其中, μ为样品的均值, σ为样品的标准差。
本质:把有量纲表达式变成无量纲表达式。

4 两种方法的使用场景

1)在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,第二种方法(Z-score standardization)表现更好。

因为:第一种方法(线性变换后),其协方差产生了倍数值的缩放,因此这种方式无法消除量纲对方差、协方差的影响,对PCA分析影响巨大;同时,由于量纲的存在,使用不同的量纲、距离的计算结果会不同。

(2)在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在(0 ,255)的范围。

因为:第二种归一化方式中,新的数据由于对方差进行了归一化,这时候每个维度的量纲其实已经等价了,每个维度都服从均值为0、方差1的正态分布,在计算距离的时候,每个维度都是去量纲化的,避免了不同量纲的选取对距离计算产生的巨大影响。

参考:
https://zhuanlan.zhihu.com/p/27627299
https://zhuanlan.zhihu.com/p/30358160
https://blog.csdn.net/program_developer/article/details/78637711

<think>嗯,用户想找关于自变量矩阵标准化中心化的数学公式,还提到了数据预处理机器学习中的数学推导。首先,我需要确认标准化中心化的具体定义,确保自己理解正确。中心化应该是指将数据减去均值,使得均值为零。标准化可能指的是在此基础上除以标准差,让数据具有单位方差。 然后,用户可能需要这些操作的数学表达式。比如,中心化的公式应该是每个特征减去该特征的均值,而标准化则是再除以标准差。矩阵形式的话,假设自变量矩阵是$X$,那么中心化后的矩阵可能是$X - \mu$,其中$\mu$是均值向量。标准化的话,应该是$(X - \mu)/\sigma$,这里$\sigma$是标准差向量。 接下来,用户可能想知道为什么要这样做,也就是数学推导部分。比如,中心化可以消除量纲的影响,让不同特征具有可比性;标准化则进一步让数据符合标准正态分布,有助于梯度下降等优化算法更快收敛。此外,在某些模型如PCA中,中心化是必须的步骤,因为PCA关注的是方差,而均值不为零会影响协方差矩阵的计算。 然后,需要考虑数据预处理机器学习中的应用场景。比如线性回归、SVM等模型对特征的尺度分布敏感,因此标准化中心化是常见的预处理步骤。同时,用户可能还关心如何在实际操作中实现这些步骤,比如使用Python的scikit-learn库中的StandardScaler。 另外,用户可能希望了解公式的具体形式,以及背后的数学原理。例如,标准化后的数据如何影响模型的参数估计,或者对梯度下降的影响。可能需要提到协方差矩阵、特征值分解等相关概念。 还要注意区分标准化归一化,虽然有时这两个术语会被混用,但归一化通常指将数据缩放到[0,1]区间,而标准化均值为0,方差为1。用户可能对此有疑问,需要明确说明。 最后,用户可能需要参考相关的文献或资料,比如引用之前的引用格式,比如引用模式识别的资料或者其他数据预处理的博客。需要确保引用的正确性相关性,比如引用[^1]关于模式识别中的数学技术,引用[^2]关于数据预处理的具体方法。 总结下来,回答的结构应该包括:定义中心化标准化的数学公式,解释其数学推导作用,在机器学习中的应用,以及实际操作的例子注意事项。同时,生成相关问题时要围绕这些知识点,帮助用户进一步深入理解。</think>### 自变量矩阵标准化中心化公式 #### 1. **中心化(Mean Centering)** 中心化的目的是将数据调整到以原点为中心,消除均值的影响。数学公式为: $$ X_{\text{centered}} = X - \mu $$ 其中, - $X$ 是原始自变量矩阵(维度为$n \times p$,$n$为样本数,$p$为特征数), - $\mu$ 是每个特征的均值向量,即$\mu = \frac{1}{n} \sum_{i=1}^n X_i$。 #### 2. **标准化Standardization/Z-Score Normalization)** 标准化中心化基础上进一步缩放数据,使每个特征具有单位方差。数学公式为: $$ X_{\text{standardized}} = \frac{X - \mu}{\sigma} $$ 其中, - $\sigma$ 是每个特征的标准差向量,即$\sigma_j = \sqrt{\frac{1}{n} \sum_{i=1}^n (X_{ij} - \mu_j)^2}$。 #### 3. **数学推导与作用** - **中心化**: 通过减去均值,协方差矩阵计算简化为$\frac{1}{n} X_{\text{centered}}^T X_{\text{centered}}$,避免偏移量对协方差的影响。 - **标准化**: 通过除以标准差,消除量纲差异,使不同特征对模型的影响权重一致,尤其适用于梯度下降类算法。 #### 4. **应用场景** - **机器学习模型**:如支持向量机(SVM)、主成分分析(PCA)神经网络等依赖距离或梯度的模型。 - **数据预处理**:在回归分析中,标准化可提升参数估计的稳定性。 #### 5. **Python实现示例** ```python from sklearn.preprocessing import StandardScaler import numpy as np X = np.array([[1, 2], [3, 4], [5, 6]]) scaler = StandardScaler(with_mean=True, with_std=True) X_standardized = scaler.fit_transform(X) # 标准化 X_centered = scaler.fit_transform(X) + scaler.mean_ # 仅中心化(需手动调整) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值