Fork me on GitHub

机器学习系列文章-数据处理(数据标准化)

背景

数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:min-max标准化(Min-maxnormalization)也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:z-score 标准化(zero-meannormalization)也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

第一部分 规范化

对序列 $x_1, x_2, \ldots, x_n$ 进行变换:
$$
y_i=\frac{x_i-\min _{1 \leq i \leq n}\left{x_j\right}}{\max _{1 \leq i \leq n}\left{x_j\right}-\min _{1 \leq i \leq n}\left{x_j\right}}
$$
则新序列 $y_1, y_2, \ldots, y_n \in[0,1]$ 且无量纲。一般的数据需要时都可以考虑先进行规范化处

  • 也叫离差标准化,是对原始数据的线性变换,使结果映射到[0,1]区间。

第二部分 正规化

对序列 $x_1, x_2, \ldots, x_n$ 进行变换:
$$
y_i=\frac{x_i-\bar{x}}{s} \text {, 这里 } \bar{x}=\frac{1}{n} \sum_{i=1}^n x_i, s=\sqrt{\frac{1}{n-1} \sum_{i=1}^n\left(x_i-\bar{x}\right)^2}
$$
则新序列 $y_1, y_2, \ldots, y_n$ 的均值为 0 , 而方差为 1 , 且无量纲。

  • 这种方法基于原始数据的均值 (mean) 和标准差 (standard deviation) 进行数据的标准化。将A的原始值x使用zscore标准化到x’。
  • Z-score标准化方法适用于属性A的最大值和最小值末知的情况,或有超出取值范围的离群数据的情况。
  • spss默认的标准化方法就是Z-score标准化。

第三部分 归一化

对正项序列 $x_1, x_2, \ldots, x_n$ 进行变换:
$$
y_i=\frac{x_i}{\sum_{i=1}^n x_i}
$$
则新序列 $y_1, y_2, \ldots, y_n \in[0,1]$ 且无量纲, 并且显然有 $\sum_{i=1}^n y_i=1$ 。

Z-Score标准化是数据处理的方法之一。在数据标准化中,常见的方法有如下三种:

  1. Z-Score 标准化
  2. 最大最小标准化
  3. 小数定标法

需要注意的是,通过 z-score 转变后的分值,并没有被正态化。也就是说,原来是正态分布的,转为 z-score 之后仍为正太分布;原来不是正态分布的,转化为 z-score 之后并不会转换为正态分布

参考文献

1、

0%