第二章 数据预处理
数据预处理
概念:数据预处理是数据挖掘过程中一个重要步骤,尤其是包含有噪声、不完整、甚至是不一致的数据进行数据挖掘时,更需要进行数据的预处理,以提高数据挖掘对象的质量、并最终达到提高数据挖掘所获模式知识质量的目的。
主要步骤:
- 数据清洗 (data cleaning)
- 数据集成(data integration)
- 数据转换(data transformation)
- 数据消减(data reduction)
数据预处理案例:
对一个负责进行公司销售数据分析的商场主管,他会仔细检查公司数据库货数据仓库内容,精心挑选与挖掘任务相关数据对象的描述特征货数据仓库相关数据,如(商品类型、价格、销售量等),但这时他或许会发现数据库中有几条几率的一些特征值没被记录下来;甚至数据库中的数据记录还存在着一些错误、不寻常、甚至是不一致的情况。对于这样的数据对象进行数据挖掘,显然首先必须进行数据的预处理。
数据预处理的对象:
- 噪声数据:数据中存在着错误、或异常(偏离期望值)的数据。
- 不完整数据:感兴趣的属性没有值。
- 不一致数据:数据内涵出先不一致情况(如:作为关键字的同意不猛编码出现不通知)
数据清洗处理例程:
- 填补遗漏的数据值
- 平滑有噪声数据
- 识别货除去异常值
例如:
假设在分析一个商场销售数据时,发现有多个几率中的属性值为空,(如顾客收入数据属性,)我们可以做一下处理。
(1) 忽略该条数据
(2) 手工填补遗漏值。(可行交差)
(3) 利用缺省值填补遗漏值。对一个属性的所有遗漏的值均利用一个事先确定好的值填补。
(4) 利用均值填补遗漏值。计算一个属性的平均值,并填补该值。
(5) 利用同类别均值填补遗漏值。这种方法尤其在分类挖掘时使用。
(6) 利用最可能的值填补遗漏值。 用数学方法推断、暂不讨论。
数据集成与转换
数据挖掘任务常常涉及数据集成操作,即将来自多个数据源的数据。结合在一起并形成一个统一数据集合,以便为数据挖掘工作的顺利完成提供完整的数据基础。
集成过程:
(1) 模式集成。要考虑来自多个数据源的相同实体的匹配。如:数据表A中可“工作人员ID”与数据表B中“身份ID”是否表示同一实体。是否表示同一事物。
(2) 冗余问题。整合表的时候考虑属性是否冗余,并需要检查记录行的冗余。
(3) 数据值冲突检测与消除。对于同一个世界实体,其来自不同数据源的属性可能不同。所以要消除差异、比例尺度、编码的不同。例如:表A中日期为2012年12月10日。表B中日期为2012-12-10日。若要统计那一天的数据。先统一A与B的格式。
数据转换过程:
所谓数据转换就是将数据转换或归并已构成一个适合数据挖掘的描述形式。
(1) 平滑处理。 帮助除去数据中的噪声。
(2) 合计处理。 对数据进行总结或合集操作。
(3) 数据泛化处理。就是用更抽象的概念取代低层次或数据层的数据对象。如:年龄属性,可以映射出更高的概念:年轻、中年和老年。
(4) 规格化。就是将有关属性数据按比例投射到特定的小范围中。
(5) 属性构造。根据已有属性集构造新的属性,以帮助数据挖掘过程。
数据消减
对于大规模数据库内容进行复杂的数据分析需要大量时间。数据消减技术正式用于帮助从原有庞大数据集中获得一个精简的数据集合,并使这一精简数据集保持原有数据集的完整性。
主要策略:
(1) 数据立方合计,这类合集操作主要用于构造数据立方(数据仓库操作)。
(2) 维度消减,主要用于检测和消除无关、弱相关、或冗余的属性或维。
(3) 数据压缩、利用编码技术压缩数据集的大小
(4) 数据块消减,利用更简单的表达式,如参数模型、非参数模型,来取代原有的数据。