第二章 数据准备
本章目标,
分析原始大型数据集的基本表述和特征 。
对数值型属性应用不同的标准化技术 。
了解数据准备的不同技术,包括属性转化 。
比较去除丢失值的不同方法 。
构造时间相关数据的统一表达方法 。
比较不同异常点探测技术 。
实现一些数据预处理技术 。
2.1 原始数据的表述
常见的数据类型,
数据挖掘过程的基本对象是数据样本,
每个样本都用几个特征来描述, 每个特
征有不同的类型的值 。 常见类型:数值
型和分类型 。 数值型的值包括实型变量
和整型变量 。
数值型:其特征是其值有顺序关系和距
离关系 。
分类型:其特征是变量间是否相等, 且
可用二进制数来表述 。
基于变量值的变量分类法:连续型变
量和离散型变量,
连续型变量也称为定量型或度量型变
量 。 可用间隔尺度或比例尺度来衡量 。
温度尺度属间隔尺度, 没有绝对零点 。
高度, 长度和工资属比例尺度, 有绝
对零点,
离散型变量也称为定性型变量 。 可用
名义尺度或有序尺度来衡量 。 顾客类
型标志和邮编属名义尺度, 排名属有
序尺度 。
周期变量是一种特殊的离散变量,
存在距离关系不存在顺序关系 。
星期, 月属周期变量 。
基于数据的与时间有关的行为特
性的类型:静态数据和动态数据 。
在数据挖掘初始阶段面对的数据也
许有潜在的杂乱性, 存在着丢失值,
失真, 误记录和不适当的样本 。 因
此在必须根据已有的数据甚至是丢
失值 的数据进行建模 。 这样就可能
避免在挖掘前处理丢失值问题 。
2.2 原始数据的特性
另一个问题是必须有处理, 非常值, 的
机制, 来消除, 非常值, 对最终结果的
影响, 数据可能并不是来自我们假定的
总体 。 异常点是典型的例子 。
失真的数据, 方法上错误的步骤, 滥用
挖掘工具, 模型太理想化, 超出各种不
确定性和模糊性的数据来源的模型可能
导致挖掘方向的错误 。 因此挖掘不只是
简单在应用一系列工具于已知问题, 而
是一种批判性的鉴定, 考查, 检查以及
评估过程 。
挖掘过程中一个最关键的步骤是
对初始数据集的预备和转换, 数
据预备有两个中心任务,
1.把数据组织成一种标准形式, 使
其能被挖掘工具和其他基于计算
机的工具处理 ( 一个关系表 )
2.准备数据集使之能得到最佳的挖
掘效果
1.标准化
挖掘中基于 n维空间距离计算
的方法需要对数据进行标准化处
理来达到最佳效果,将数据按比例
对应到特定的范围, 否则距离测
量将会超出平均起来数值更大的
那些特征 。 标准化常用技术,
2.3 原始数据的转换
(1)小数缩放:小数缩放移动小数点,但
大多数原始数据保持不变。设缩放区
间为 [-1,1],其变换公式为,
kiviv 10/)()(' ?
K是保证缩放后的值落在指定区间的最小
比例。方法为:在原数据集中选择绝
对值最大者,取 K使该值绝对值 〈 1,
然后将该因子施加于所有数据进行缩
放。
(2)最小-最大标准化:小数缩放存在
这样一个问题,假设数据集在 150到
250之间,缩放后数据在 0.15到 0.25之
间,只落在[-1,1]中的一个小
的子区间中,为了使值在整个标准区
间中有较好的分布,采用最小-最大
公式,
)))(m i n ())(/ ( m ax ()))(m i n ()(()(' iviviviviv ???
(3)标准差标准化:该方法对距离测量非
常有效,但把原数据转化为未被认可
的形式。对于特征 v,其均值 mean(v)和
标准差 sd(v)由整个数据集计算产生。
那么样本 I,用下式对其进行转化,
)(/))()(()(' vsdvm ea niviv ??
例如数据集是 v={1,2,3},mean(v)=2,sd(v)=1,
则标准化后的新集合为 v*={-1,0,1}。
2.数据平整
对许多挖掘技术来讲, 值之间小小
的区别并不重要, 但可能会降低挖掘
过程的性能并影响最终结果 。 这些值
也可认为是同一潜在值的随机变差 。
因此, 有时它对变量的值的平整处理
很有用 。
设样本集合为,
{ 0.93,1.01,1.001,3.02,2.99,5.03,5.01,4.98}
平整后的集合为,
{ 1.0,1.0,1.0,3.0,3.00,5.0,5.0,5.0}
这个简单转化并没有降低质量,但特征
的不同实数值的数目却减少到了3个。
在挖掘中特征中不同值的数目的降
低意味着数据空间维数的降低,这一
点对于基于逻辑的挖掘特别有用。
3.差值和比率
即使是对特征很小的改变也能
显著地提高挖掘的性能 。 差值和
比率可使目标说明得到改进, 尤
其是应用于输出特征的时候 。
例如:在生产过程控制中, 用
最终优化 s(t+1)-s(t)的相对改动
的目标比优化输出 s(t+1)的绝对
量相比更加有效 。
比率是另一种简单的特征转换
方法 。 用 s(t+1)/s(t)作为挖掘的
输出, 而不是 s(t+1),这意味着特
征的值的增长或减少的水平也能
提高挖掘的性能 。
例如, 在医学数据中, 病人有两个特
征, 身高和体重, 作为不同诊断的输入参
数, 许多应用表明, 若用体重和身高的加
权比的特征进行转换, 诊断结果会更好 。
在大型数据集中, 丢失数据某些
特征的值是可能, 要得到完整的数
据案例的子集是困难的, 对丢失数
据的处理有许多方法, 可减少子集,
去掉丢失值的样本, 或把丢失值补
上 。
2.4 丢失数据
第一种方法是利用经验手动检查缺省
值样本, 加入一个合理的, 可能的,
预期的值 。
第二种方法是给出了消除丢失值的一
个更简单的解决方案, 这种方法基于
一种形式的, 常常是用一些常量自动
地替代丢失值 。
1.用全局常量;2,用特征平均值;
3.用属于给定种类的特征的平均值 。
实际的挖掘应用包括从强时间相关到弱时间
相关或者时间无关 。 对于时间相关的问题需
要特殊的数据准备和转换, 这一点对挖掘的
成功至关重要 。 例如温度测量值是一个一元
时间序列问题, 其特点是指定时间的值和它
的历史值有联系 。 该时间序列可表示为,
X ={t(1),t(2),t(3),…,,t(n) }
我们的目标是根据特征的以前值预报 t(n+1)的
值, t(n+1)与以前值真接相关 。
2.5 时间相关数据
设时间序列由11个测量值组成,
X={t(0),t(1),t(2),t(3),t(4),t(5),t(6),
t(7),t(8),t(9),t(10) }
△ 如果时间序列的分析窗口为5,将上面
数据重组为一个6个样本的表格,见表1。
△如果是预测 t(n+j)的值,见表2,j=3。
△通常,在后面的进一步预测输出中,更
难和更不可靠的是预测。
sample M1 M2 M3 M4 M5 Next
value
1 t(0) t(1) t(2) t(3) t(4) t(5)
2 t(1) t(2) t(3) t(4) t(5) t(6)
3 t(2) t(3) t(4) t(5) t(6) t(7)
4 t(3) t(4) t(5) t(6) t(7) t(8)
5 t(4) t(5) t(6) t(7) t(8) t(9)
6 t(5) t(6) t(7) t(8) t(9) t(10)
表 1
sample M1 M2 M3 M4 M5 Next
value
1 t(0) t(1) t(2) t(3) t(4) t(7)
2 t(1) t(2) t(3) t(4) t(5) t(8)
3 t(2) t(3) t(4) t(5) t(6) t(9)
4 t(3) t(4) t(5) t(6) t(7) t(10)
表2
除了时间序列的标准表格外, 有时在
应用挖掘技术之前必须对原始数据进
行额外的预处理, 总结它们的特征 。
多数情况下, 预测 t(n+1)-t(n)的差
比预测 t(n+1)的绝对值作为输出效果
更好, 同样, t(n+1)/t(n)的比率揭
示了变化的百分率, 有时用这个比值
也能得到更好的结果 。
在大型数据集中, 通常存在着不遵循数据模
型的普遍行为样本 。 这些样本和其他残余部
分数据有很大不同或不一致, 叫做异常点 。
异常点可能是由测量误差造成的, 也可能是
数据固有可变性的结果 。 例如年龄值在数据
库中表现为 -1,一个人子女数为 25,前者是
错误的, 而后者是不寻常的, 可能录入错误,
也可能是真实的 。
2.6 异常点分析
一些挖掘算法试图将异常点对最终模
式的影响减少到最小, 或者是在数据
预处理阶段把它清除 。 要自动去除异
常点时必须小心, 因为如果去除的是
正确数据的话, 就会导致重要隐藏信
息的丢失 。 例如, 在检测银行交易中
信用卡欺诈行为时, 异常点是可能揭
示欺诈行为的典型例子, 整个挖掘过
程集中在对它们的检测上 。
最简单的一维异常点检测方法是应用
统计学, 假定值的分布已知, 必须找
出基本的统计参数, 如均值和方
差, 在这些值和异常点期望 ( 预测 )
数目的基础上, 建立方差函数阈值是
可行的, 所有阈值以外的样本都是可
能的异常点 。
阈值 =均值 ± 2× 标准差
第二种方法是基于距离的异常点
检测 。 该方法可用于多维样本 。
这种算法的基本复杂性在于估计 n
维数据集中所有样本间的测量距
离 。 如果样本S中至少有一部分
数量为 p的样本到 si的的距离比 d
大, 那么样本 si是数据集S中的
一个异常样本 。