引言
在进行数据挖掘的时候,我们拿到都是从现实社会中得到的原始数据,它是充满噪声的,维度也可能很高,也可能重复,因此在正式的进行数据挖掘之前我们需要对数据进行预处理。
数据预处理大概包括这几个方面:
- 数据清洗
- 数据集成
- 数据变换
- 数据规约
数据清洗
数据清洗处理处理这几个问题
- 数据空缺
- 噪声处理
- 不一致数据
数值空缺
- 清楚空缺值记录(尤其是类别空缺的时候)
- 取平均值(最好去同类别的平均值)
- 设定一个全局变量unknown,将空缺值设为这个
- 通过回归等方法对空缺值进行预测
噪声处理
- 分箱: 参考相邻值平滑
- 平滑
- 均值替换
- 中值替换
- 边界值(最大/小值)替换
- 分箱方法
- 等深分箱:排序后,每个箱子装相同数量的数据
- 等宽分箱:排序后,每个箱子的数据的宽度相同
- 平滑
- 聚类:排除异常值
- 计算机与人工检测结合:计算机检测出来后再人工进行识别
- 回归
不一致的数据
解决方法:
- 人工更正
- 知识工作工具
- 数据字典
数据集成
数据集成:将多文件或者多数据库中的异构数据进行合并,然后存放在一个一致的数据存储中。
考虑的问题:
- 模式匹配
- 数据冗余
- 数据值冲突
数据变换
数据变换包括这几个方面
- 平滑
- 聚集
- 数据概化
- 规范化
数据规范化
最大-最小规范化
v′=v−minAmaxA−minA∗(newmax−newmin)+newmin
z−score 规范化(零均值规范化)
v′=v−meanstarddev
starddev 表示标准差, mean 表示平均值
小数定标规范化
v′=v10j
j 是使
数据规约
数据归约:目的是为了获得比原始数据小的多的,但不破坏数据完整性的挖掘数据集,该数据集可以得到与原始数据相同的挖掘结果。(提高数据挖掘的效率)
方法:
- 数据立方体聚集:把聚集的方法用于数据立方体。
- 维归约:检测并删除不相关、弱相关或冗余属性。
- 数据压缩:选择正确的编码压缩数据集。
- 数值压缩:用较小的数据表示数据,或采用较短的数据单位,或者用数据模型代表数据。
离散化和概念分层生成:使连续的数据离散化,用确定的有限个区段值代替原始值;概念分层是指用较高层次的概念替换低层次的概念,以此来减少取值个数。
属性子集选择的基本方法包括以下几种(启发式算法):- 逐步向前选择
- 逐步向后删除
- 向前选择和向后删除结合
- 判定树归纳
- 基于统计分析的归约