归一化(Normalization)是一种数据预处理技术,旨在将不同量纲、不同取值范围的数据转换到相同的尺度上,以便进行更加公平、有效的比较或分析。

通过归一化,数据被调整到一定的标准范围内,常见的范围有 [0, 1] 或 [-1, 1],以消除不同特征在数量级上的差异。

一、常见的归一化方法

归一化的方法主要有以下几种,取决于具体的应用场景和数据特征:

1. Min-Max 归一化(Min-Max Normalization)

Min-Max 归一化是将数据线性映射到 [0, 1] 范围内。它的计算公式如下:

x^{'}=\frac{x-x_{min}}{x_{max}-x_{min}} 

其中:

x是原始数据,

x_{min}是数据的最小值,

x_{max}是数据的最大值,

x^{'}是归一化后的数据,值域在[0,1]之间。

优点保持数据间的比例关系,简单易行,适合有固定上下界的数据场景。

缺点对极端值(outliers)敏感,如果数据中存在极端值,所有数据都可能被压缩到很小的区间。

例子假设某个特征的数据范围为 [100, 500],如果要将它归一化到 [0, 1],对于某个数据点 200,则归一化计算为:

x^{'}=\frac{200-100}{500-100}=\frac{100}{400}=0.25 

2. Z-score 归一化(标准化,Z-score Normalization)

Z-score 归一化通过减去均值再除以标准差,使得数据呈标准正态分布,均值为 0,标准差为 1。其公式为:

x^{'}=\frac{x-\mu }{\sigma } 

其中:

x是原始数据,

\mu是数据的均值,

\sigma是数据的标准差,

x^{'}是归一化后的数据,具有零均值和单位标准差。 

优点不受极端值的影响,适合处理具有正态分布的数据。

缺点如果数据分布不是高斯分布,效果可能较差;不能保证数据范围在 [0, 1] 之间。

例子假设数据的均值为 200,标准差为 50,某个数据点为 300,计算 Z-score 归一化为:

x^{'}=\frac{300-200}{50}=2 

3. 最大值归一化(Max Abs Scaling)

最大值归一化是将数据除以它的绝对最大值,使数据的范围归一化到 [-1, 1] 之间。其公式为:

x^{'}=\frac{x}{\left | x_{max} \right |} 

其中:

x_{max}是数据的最大绝对值,

x^{'}是归一化后的数据,范围在 [-1, 1] 之间。

优点简单快速,适合在数据分布中心为零时使用。

缺点仍然对极端值敏感。

例子假设数据的最大绝对值为 500,某个数据点为 250,归一化结果为:

x^{'}=\frac{250}{500}=0.5 

4. 小数定标归一化(Decimal Scaling Normalization)

小数定标归一化通过将数据除以一个 10 的整数次幂,使归一化后的数据范围在 [-1, 1] 之间。其公式为:

x^{'}=\frac{x}{10^{j}} 

其中:

j是数据的最大值\left | x_{max} \right |的位数(即\left \lceil log_{10}(x_{max}) \right \rceil) 。

优点适合当数据范围比较固定且易于计算时使用。

例子假设数据的最大值为 987,最大位数为 3,则将每个数据除以10^{3}进行归一化,例如数据点 250:

x^{'}=\frac{250}{10^{3}}=0.25 

5. 向量归一化(Vector Normalization)

向量归一化通常用于将向量的模长标准化,使整个向量的长度为 1。常用于文本处理、图像处理等领域。公式为:

x^{'}=\frac{x}{\left \| x \right \|}

其中\left \| x \right \|是向量 x 的 欧几里得范数,即:

\left \| x \right \|=\sqrt{x_{1}^{2}+x_{2}^{2}+\cdots +x_{n}^{2}}

优点在处理向量(如图像、文本等)的任务中非常有用,可以消除向量长度差异带来的影响。

例子:假设有一个向量[3,4],其模长为\sqrt{3^{2}+4^{2}}=5,归一化后得到的向量为:

二、不同归一化方法的应用场景

  • Min-Max 归一化常用于数据范围已知,且目标是将数据归一化到固定范围(如 [0, 1])的场景,广泛应用于神经网络等需要定量计算的数据模型中。

  • Z-score 归一化适合数据分布为正态分布或需要消除量纲影响的场景,常用于聚类分析和 PCA(主成分分析)等模型。

  • 最大值归一化适用于数据值围绕中心对称分布,且希望将数据映射到 [-1, 1] 区间的情况,常用于 SVM 等机器学习算法。

  • 小数定标归一化适合数据的取值范围较大,且位数变化相对固定的场景。

  • 向量归一化适用于向量数据,如文本分类、图像处理等领域,特别是当要消除向量大小的影响时。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐