这是voidAlex原创的第五篇博文。

在数据挖掘的问题中,数据所用的度量单位可能会影响分析结果。使用较小的单位可能会导致该属性有较大的值域。为了避免这些问题,数据应该进行归一化(又称规范化或标准化)。归一化数据将会赋予所有属性相同的权重。常见的归一化方式有三种:最小-最大值归一化,z分数归一化,小数定标归一化。

最小-最大值归一化

$$
u^\prime=\frac
{u - min_A}
{max_A - min_A}(newmax_A - newmin_A) + newmin_A
$$

其中,A是数值属性,$min_A$和$max_A$分别是属性A在该数据集中的最小和最大值。通过上述的计算即可把A的值映射到区间$[newmin_A, newmax_A]$中的$u^\prime$。

常用的最小-最大值区间为$[0, 1]$和$[-1, 1]$。使用最小-最大值归一化,如果今后的数据在原始数据的值域之外,将会产生越界错误。

z分数归一化

$$
u^\prime=\frac
{u - \overline{A}}
{\sigma_A}
$$

其中,$\overline{A}$为属性A的均值,$\sigma_A$为A的标准差。该方法在属性A的最大最小值未知或者有离群点的时候可用。

小数定标归一化

$$
u^\prime=\frac
{u}
{10^i}
$$

该方法通过移动属性A的小数点位置进行归一化。小数点移动的位置依赖于A的最大绝对值。其中,$i$是使得$max(\mid u^\prime \mid) < 1$的最小整数。