3.1 数据预处理:概述
3.1.1 为什么要对数据预处理?
数据要满足应用需求,必须是高质量的。高质量是指:准确性、完整性、一致性、时效性、可信性和可解释性。
3.1.2 数据预处理的主要任务?
数据预处理的主要步骤是 (不互斥):数据清理、数据集成、数据规约和数据变换。
3.2 数据清理
现实世界的数据一般是不完整的、有噪声的和不一致的、数据清理例程试图填充缺失的值、光滑噪声并识别离群点、纠正数据中的不一致。
3.2.1 缺失值处理办法
- 忽略元组:如果元组有多个属性值缺失,可以考虑忽略元组;否则,就不能使用该元组的剩余属性值;
- 人工填写缺失值:费时,缺失数据量大的时候行不通;
- 使用一个全局常量填充缺失值:比如用unknown或者0等来表示,但是挖掘程序可能会误以为这些常量有特殊的含义;
- 使用属性的中心度量填充缺失值:对于正常的(对称的)数据,可以用均值填充缺失值;倾斜的数据,可以用中位数;
- 使用与给定元组属同一类的所有样本的属性均值或中位数:与4类似,但是样本限制到了同一类;
- 使用最可能值填充:使用回归、贝叶斯等推理技术,预测缺失值。是比较流行的做法。
注意:数据缺失,不代表数据有错误,因为有些情况下,属性就是没有值的。
3.2.1 噪声数据处理办法
噪声是被测量的变量的随机误差或方差,可以用数据光滑技术来“光滑”数据,去掉噪声。数据光滑技术有:
- 分箱(binning):等频/等宽分箱,箱内可以用均值、中位数、箱边界光滑;
- 回归(redression):用一个函数拟合数据,如:线性回归、多元线性回归;
- 离群点分析(outlier analysis):通过聚类来检测离群点
3.2.2 数据清理作为一个过程
将数据清理作为一个过程,用一些数据清理工具,如Potter's Wheel来清理数据,或者是开发数据变换操作的规范说明语言。
3.3 数据集成
数据挖掘需要数据集成,合并来自多个数据存储的数据。
来自多个信息源的现实世界的等价实体如何“匹配”?也就是实体识别问题。
3.3.1 (属性)冗余和相关分析
在数据集成中,冗余是另一个问题。比如属性命名不一致导致的冗余;一个属性若是可以由其他属性导出,也是冗余。
有些冗余可以被相关分析检测到,相关分析可以根据可用的数据,度量一个属性能在多大程度上蕴含另一个。
标称属性,用χ2检验;数值属性,使用相关系数(correlation coefficient)和协方差(covariance),评估一个属性是如何随另一个属性变化的。计算方法见P62-65。
3.3.2 元组重复
处理检测属性级别的重复外,还要检测元组级别的重复。比如:若订单表中包含收货人信息,则同一个收货人可能以不同的地址出现在订单数据库中。
3.3.3 数据值冲突的检测与处理
对于现实世界的同一实体,来自不同数据源的属性值可能不同,这可能是因为表示、尺度或编码不同。例如重量、尺寸等度量单位。
3.4 数据规约
直接处理海量数据需要很长时间,数据规约技术可以得到数据集的规约表示,规约后的数据集比原始数据集小的多,并且保持原始数据的完整性。即:在规约后的数据集上进行挖掘更快,并且会产生与原始数据集近乎相同的结果。
3.4.1 数据规约策略
数据规约策略包括:维规约、数量规约、数据压缩。
3.4.2 维规约
减少所考虑的随机变量或属性的个数。具体方法有:
- 小波变换:(看不懂,pass了,我也很无奈)
- 主成分分析PCA:探索最能代表数据的k和n维正交向量(k<=n),把原始数据投影到一个低维空间。
- 属性子集选择:删除不相关或冗余的属性减少数据量。找出最小属性集,使得数据类的概率分布尽可能地接近使用所有属性得到的原分布。
3.4.3 数量规约
用替代的、较小的数据表示形式替换原数据。具体方法有:
- 回归和对数线性模型:如线性回归、多元回归(y=ax+b)
- 直方图:等宽、等频
- 聚类:类内相似、类间不同
- 抽样:用样本数据代替原始数据,抽样方法有:无放回简单随机抽样、有放回简单随机抽样、簇抽样(粒度:簇)、分层抽样
- 数据立方体聚集
3.4.4 数据压缩
有损压缩和无损压缩。
3.5 数据变换与数据离散化
在数据变换中,数据被变换或统一成一种适合于挖掘的形式。数据变换策略有:
- 光滑:去掉数据的噪声,这类技术包括分箱、回归和聚类;
- 属性构造(特征构造):根据给定的属性构造出新的属性并添加在属性集中,如根据单价与数量属性,构造出总价属性;
- 聚集:对数据进行汇总或聚集,如将月收入汇总成年收入;
- 规范化:把属性数据按比例缩放,使之落入一个特定的小区间;具体方法有:最小-最大规范化、z分数(z-score规范化)、小数定标规范化:
- 离散化:数值属性的原始值用区间标签或概念标签替换,如:将具体的年龄替换成youth、adult、senior,可以通过分箱技术、聚类、决策树等技术离散化。
最小-最大规范化方法: v'=(v-min)/(max-min)*(new_max-new_min)+new_min z分数规范化: v'=(v-mean)/σ 小数定标规范化: v'=v/10^j j是使得max(v')<1的最小整数
- 由标称数据产生概念分层:比如street可以泛化到更高的层次中city或country