在分析实验数据的时候,往往需要对数据进行标准化[normalization],即将实验数据的取值转换到某一指定的范围,如[-1,+1], [0,1]等,以便进一步分析数据的特性。
下面对数据标准化的常用方法进行了介绍:
Min-max normalization
min-max标准化方法是对原始数据的线性变换。设minA和maxA分别为属性A的原始值中的最小值和最大值,将属性A的一个原始值v通过min-max标准化映射成在区间[new_minA, new_maxA]中的值v’的计算方法是:
若新的取值区间是[0,1],则公式可简化为:
min-max标准化方法保留了原始数据之间的相互关系,但是如果标准化后,新输入的数据超过了原始数据的取值范围,即不在原始区间[minA, maxA]中,则会产生越界错误。因此这种方法适用于原始数据的取值范围已经确定的情况。
z-score normalization(zero-mean normalization)
这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将属性A的原始值v使用z-score标准化到v’的计算方法是:
其中是属性A原始值得均值,是属性A原始值的标准差。标准差即为方差的平方根。方差的计算公式如下:
z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。
Decimal scaling
这种方法通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值v使用decimal scaling标准化到v’的计算方法是:
注意,标准化会对原始数据做出改变,因此需要保存所使用的标准化方法的参数,以便对后续的数据进行统一的标准化。
参考资料:
1. Data Mining: Concepts and Techniques, Jiawei Han and Micheline Kamber, 2006