接下来介绍的几个数据转换常见类型与问题无关,并可能改善数据挖掘的结果。在特定应用中选择和使用技术,取决于数据的类型,数据量和数据挖掘任务的一般特征。
1. 标准化
一些数据挖掘方法,一般是那些基于n维空间中的点间距离计算的方法,可能需要对数据进行标准化,以获得最佳结果。测量值可按比例对应到一个特定的范围。如【-1,1】或者【0,1】。如果没有标准化,距离测量值将会超出数值较大的特征。数据的标准化有许多方法,这里列举3个简单有效的标准化技术。
1) 小数缩放,小数缩放移动小数点,但仍然保留大多数原始数值。常见的缩放是使值在-1 到 1的范围。小数缩放可以表示为等式:
v'(i) = v(i)/(10的k次幂)
在这个等式中,v(i)是特征v对样本i的值,v(i)' 是缩放后的值,k是保证|v'(i)| 的最大值小于1的最小比例。
首先,在数据集中找对|v'(i)|的最大值,然后移动小数点,直到得出一个绝对值小于1的缩放新值。这个因子可用于所有的其他的v(i)
2)最小-最大标准化。假设特征v的数据在150~250的范围之间,则前述的标准化方法使所有标准化后的数据取值在0.15~0.25之间。但是这会让值堆积在这个取值范围的一个小的子区间中。要使值在整个的标准化区间如【0,1】上获得较好的分布,可以用最小-最大公式:
v'(i) = (v(i) - min[v(i)])/(max[v(i)] - min[v(i)])
其中特征v的最小值和最大值是通过一个集合自动计算的,或者是通过特定领域的专家估算出来的。这种转换也可应用于标准化区间【-1,1】。最大值和最小值的自动计算需要对整个数据集进行另一次搜索,但是计算过程很简单。另一方面,最小值和最大值的专家估算可能导致标准化值的无意集中。
3)标准差标准化,按标准差进行的标准化对距离测量值非常有效,但是把初始数据的转化成了未被认可的形式。对于特征v,平均值mean(v) 和 标准差sd(v)是针对整个数据集进行计算的。那么对于样本i,用下述等式来转换特征的值:
v(i) = (v[i] - mean[v])/sd(v)
标准化对几种数据挖掘方法来说很有用,,但是标准化并不是一次性或一个阶段的事件。如果一种方法需要标准化数据,就要为所选的数据挖掘技术对可用的数据进行转换和准备,还必须对数据挖掘的所有其他阶段,所有的新数据和未来数据进行同样的数据标准化。因此,必须把标准化的参数和方法一起保存。
2、数据平整
数值型的特征y可能包括许多不同的值,有时跟训练案例数一样多。对许多数据挖掘技术来说,这些值之间的微小区别并不重要,但可能会降低挖掘方法的性能,影响最终结果。这些值可以看作同一潜在值的随机变差。因此,有时候对变量值进行平整处理。
很多简单的平整方法可以计算类似测量值的平均值。
3. 差值 和 比率
差值和比率可以改进对目标的描述,尤其是在将它们应用于输出特征时。
有时候,这些转换得到的效果要好于预测一个数的简单初始目标描述。对于很多数据挖掘方法来讲,选项数量较少,可以提高算法效率。
比率是第二种简单的目标或者输出特征转换方法,用s(t+1)/s(t)作为数据挖掘过程的输出代替绝对值s(t+1),意味着特征镇的增减量也能提高整个数据挖掘过程的性能。
差值和比率转换不仅对输出特征有用,对输入特征也同样有用。它们可作为一个特征的时间变化或用作不同输入特征的合成。
不存在普遍使用的数据转换方法。最终注意的是最终表现。