处理数据时经常会遇到比较两个不同数据集的情况(比如比较具有不同教育水平地区学生的成绩,比较不同网页的受欢迎程度),这时就需要先将数据标准化,再进行比较。
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
网站数据分析上有一篇很好的帖子《数据的标准化》,里面详细分析了归一化(可以看成是特殊的数据标准化)常用的四种方法:
- min-max标准化
- log函数转换:百度知道里确实有很多人说用log10归一化。。。
- atan函数转换
- z-score标准化
另外,在《统计数据标准化--无量纲化方法》中按照所使用的函数分为三种方法(这篇论文超级水):
- 直线型无量纲法
- 折线形无量纲法
- 曲线型无量纲法
在选择标准化方法前必须要先了解数据,再决定使用哪种方法。工程上需要保证性能且数据量很大的时候不适合用min-max, z-score, 他们都需要先遍历所有数据一次,找出极值或均值后才能计算;一般情况下,如果数据的绝大部分集中分布在某个区间,折线法会让数据具有可控的区分度,而且实现起来简单,快速(虽然看上去有点糙)。