当今现实世界的数据极易受噪声,丢失数据和不一致数据的侵扰,低质量的数据将导致低质量的挖掘结果,数据预处理技术可以提高数据质量,从而提高数据挖掘结果的质量和性能。数据预处理的方法主要有如下三种:数据清理、数据集成与变换、数据归约。数据清理例程通过填写缺失值、光滑噪声数据、识别或删除离群点并解决不一致性来“清理”数据。分析中往往包含来自多个数据源的数据,这涉及集成多个数据库、数据立方体或文件,即数据集成,数据变换操作,如规范化和聚类,是导向挖掘过程成功的预处理过程。数据归约得到数据集的简化表示,它小很多,但能够产生同样的(或几乎同样的)分析结果。以下对这三种方法进行分类较详细的描述,三类方法区分并不十分严格,可能某种方法既是数据清理方法又是一种数据归约。
一 数据清理
试图填充缺失值,光滑噪声并识别离群点,并纠正数据中的不一致。
1)处理缺失值方法:
a.忽略元祖,挖掘任务涉及分类任务中如果缺少类标号时通常这样做
b.人工填写缺失值,量大时行不通
c.使用一个全局常量填充缺失值,简单但不可靠
d.使用属性的均值填充缺失值
e.使用与给定元组属同一类的所有样本的属性均值
f.使用最有可能的值填充缺失值,可以用回归,使用贝叶斯形式化的基于推理的工具或决策树归纳确定,是流行的做法。
2)数据光滑技术:噪声是被测量的变量的随机误差或方差
a.分箱,分箱方法通过考察数据的“近邻”(即周围的值)来光滑有序数据的值,有序值分布到一些“桶”或箱中。由于分箱方法考察近邻的值,因此进行局部光滑。几种分箱技术:用箱均值光滑、用箱边界光滑、用箱中位数光滑。
b.回归:可以用一个函数(如回归函数)拟合数据来光滑数据。线性回归涉及找出拟合两个属性(或变量)的“最佳”线,是的一个属性可以用来预测另一个。多元线性回归是线性回归的扩展,其中涉及的属性多于两个,并且数据拟合到一个多维曲面。
c.聚类:通过聚类检测离群点
3)数据清理作为一个过程的方法:过程的第一步是偏差检测,有大量商业工具帮助我们进行偏差检测,数据清洗工具、数据审计工具、数据迁移工具、ETL工具。新的数据清理方法强调加强交互性,如Potter's Wheel,集成了偏差检测和数据变换。
二 数据集成和变换
1)数据集成:数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。数据集成有三个主要问题:a.模式集成和对象匹配,实体识别问题:来自多个信息源的现实世界的等价实体如何才能匹配?元数据可以帮助避免模式集成的错误。b.冗余:有些冗余可以被相关分析检测到。通过计算属性A,B的相关系数(皮尔逊积矩系数)来判断是否冗余;对于离散数据,可通过卡方检验来判断两个属性A和B之间的相关联系。c.数据值冲突的检测与处理
2)数据变换:将数据转换或统一成适合于挖掘的形式。涉及如下内容:
a.光滑:去掉数据的噪声,包括分箱,回归和聚类
b.聚集:对数据进行汇总或聚集。这一步通常用来为多粒度数据分析构造数据立方体
c.数据泛化:使用概念分层,用高层概念替换底层或“原始”数据。
d.规范化:又称为归一化,feature scaling特征缩放。将属性数据按比例缩放,使之落入一个小的特定区间。规范化方法:
1.最小-最大规范化:v'=[(v-min)/(max-min)]*(new_max-new_min)+new_min
2.z-score规范化(或零均值规范化):v'=(v-属性A的均值E)/属性A的标准差∽
3.小数定标规范化:v'=v/10的j次方,j是使Max(|v'|)<1的最小整数
e.属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。
三 数据归约
数据集可能非常大!面对海量数据进行复杂的数据分析和挖掘将需要很长的时间。数据归约技术可以用来得到数据集的归约表示,它小很多,但仍接近保持原数据的完整性。数据归约策略如下:
1)数据立方体聚集:聚集操作用于数据立方体结构中的数据。数据立方体存储多维聚集信息。
2)属性子集选择,参见文本分类概述中特征选择算法
3)维度归约:使用数据编码或变换,以便得到原数据的归约或“压缩”表示。归约分为无损的和有损的。有效的有损维归约方法为:小波变换和主成分分析
4)数值归约:通过选择替代的、‘较小的’数据表示形式来减少数据量
5)离散化和概念分层产生