您的位置:

数据归一化方法及公式详解

一、最大-最小规范化

最大-最小规范化也被称为离差标准化。这种方法是通过将原始数据按比例进行缩放,使其固定在一定的范围内。具体来说,就是将原始数据$x$进行归一化得到新的数值$y$,公式如下:

y = (x-min)/(max-min)

其中,$min$和$max$分别是数据集中最小值和最大值。

最大-最小规范化可以保留原始数据的分布情况,而且其归一化结果的数值范围固定在[0,1]之间,方便比较不同特征的大小。

二、z-score标准化

z-score标准化也被称为标准差标准化。这种方法旨在通过将原始数据按照标准差的大小进行缩放,使其能够符合正态分布的特征。具体来说,就是将原始数据$x$进行归一化得到新的数值$y$,公式如下:

y = (x-mean)/std

其中,$mean$是数据集的均值,$std$是数据集的标准差。

z-score标准化可以将原始数据转换为具有相同单位的分数,并保留了原始数据的大小关系。此外,其归一化结果符合标准正态分布,便于计算。

三、小数定标标准化

小数定标标准化是一种通过移动小数点的位置来缩放数据的方法。具体来说,就是将原始数据$x$除以一个固定的基数$10^j$,得到新的数值$y$,公式如下:

y = x/10^j

其中,$j$是一个常数,是使得归一化后的数据的绝对值最大值小于1的最小整数。

小数定标标准化方法能够处理数据的动态范围差异,减小不同数值之间的量纲影响,缩小了数据的差异性,方便进行比较和处理。

四、其他归一化方法

除了上述三种常见的数据归一化方法外,还有一些其他的归一化方法。

1.范数归一化

范数归一化利用矩阵或向量的范数进行缩放,使得矩阵或向量的范数等于1。具体来说,就是将向量$x$进行归一化得到新的数值$y$,公式如下:

y = x/||x||

其中,$||x||$表示向量$x$的范数。

2.秩标准化

秩标准化是一种通过给数据进行排序来进行归一化的方法。具体来说,就是将原始数据$x$按其大小进行排名得到新的数据$y$,公式如下:

y = rank(x)/(N+1)

其中,$N$为数据集大小,$rank(x)$表示$x$在数据集中的排名。

五、代码示例

1.最大-最小规范化

def min_max_normalization(x):
    """进行最大-最小规范化"""
    x_min = min(x)
    x_max = max(x)
    return [(i-x_min)/(x_max-x_min) for i in x]

2.z-score标准化

def z_score_normalization(x):
    """进行z-score标准化"""
    mean_x = sum(x)/len(x)
    std_x = math.sqrt(sum([(i-mean_x)**2 for i in x])/len(x))
    return [(i-mean_x)/std_x for i in x]

3.小数定标标准化

def decimal_scaling_normalization(x):
    """进行小数定标标准化"""
    j = math.ceil(max([abs(i) for i in x]))
    return [i/(10**j) for i in x]