来自 http://blog.sina.com.cn/s/blog_4ee13c2c0100o92b.html
一、为何要将数据标准化?
由于不同变量常常具有不同的单位和不同的变异程度。
1、对变量的离差标准化
2,对变量的标准差标准化
3,先对事例进行标准差标准化,再对变量进行标准差标准化
4,先对变量、后对事例、再对变量的标准差标准化
来自:http://blog.csdn.net/xiaoyu714543065/article/details/7837668
在数据分析过程中,我们经常需要对数据进行标准化(normalization),数据标准化主要功能就是消除变量间的量纲关系,从而使数据具有可比性。可以举个简单的例子,一个百分制的变量与一个5分值的变量在一起怎么比较?只有通过数据标准化,都把它们标准到同一个标准时才具有可比性。即通过将属性数据按照比例缩放,使之落入一个小的特定区间,如[-1,+1]、[0,1]等,以进一步分析数据的属性。
有许多中数据标准化方法,常用的有最小-最大标准化、Z-score标准化和按小数定标标准化等。下面对数据标准化的常用方法进行了介绍:
一、Min-Max标准化
min-max标准化方法是对原始数据进行线性变换。设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间【0,1】中的值,其公式为:
新数据=(原数据-极小值)/(极大值-极小值)
这种方法适用于原始数据的取值范围已经确定的情况。
例如:假定属性income的最小与最大值分别为$12,000和$98,000。我们想映射income到区间[0,1]。根据min-max标准化,incom值$73,600将变换为
(73,600-12,000)/(98,000-12,000)×(1-0)=0.716。
二、z-score标准化
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将属性A的原始值v使用z-score标准化到v’的计算方法是:
新数据=(原数据-均值)/标准差
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
spass的默认的标准化方法就是z-score标准化。
用Excel进行z-score标准化的方法:在Excel中没有现成的额函数,需要自己分步计算,其实标准化的公式很简单。
步骤如下:
1、求出各变量(指标)的算术平均值(数学期望)xi和标准差si
2、进行标准化处理:zij=(xij-xi)/si。其中:zij为标准化后的变量值;xij为实际变量值。
3、将逆指标钱的正负号对调。标准化后的变量值围绕0上下波动,大雨0说明高于平均水平,小于0说明低于平均水平。
三、Decimal scaling(小数定标标准化)
这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用decimal scaling标准化到y’的计算方法是:y=x/(10*j) 其中,j是满足条件的最小整数。
例如 假定A的值由-986到917,A的最大绝对值为986,为使用小数定标标准化,我们用1000(即,j=3)除以每个值,这样,-986被规范化为-0.986。
注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。
参考资料:
1. Data Mining: Concepts and Techniques, Jiawei Han and Micheline Kamber, 2006
来自:http://www.cnblogs.com/nanpo/archive/2012/11/04/2754353.html
处理数据时经常会遇到比较两个不同数据集的情况(比如比较具有不同教育水平地区学生的成绩,比较不同网页的受欢迎程度),这时就需要先将数据标准化,再进行比较。
数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
网站数据分析上有一篇很好的帖子《数据的标准化》,里面详细分析了归一化(可以看成是特殊的数据标准化)常用的四种方法:
- min-max标准化
- log函数转换:百度知道里确实有很多人说用log10归一化。。。
- atan函数转换
- z-score标准化
另外,在《统计数据标准化–无量纲化方法》中按照所使用的函数分为三种方法(这篇论文超级水):
- 直线型无量纲法
- 折线形无量纲法
- 曲线型无量纲法
在选择标准化方法前必须要先了解数据,再决定使用哪种方法。工程上需要保证性能且数据量很大的时候不适合用min-max, z-score, 他们都需要先遍历所有数据一次,找出极值或均值后才能计算;一般情况下,如果数据的绝大部分集中分布在某个区间,折线法会让数据具有可控的区分度,而且实现起来简单,快速(虽然看上去有点糙)。
也推荐同学们看看数据小兵的文章
数据的标准化处理及实际应用