写在前面
“不管做什么事情,目的一定要明确。”
所以:
数据挖掘的目的:
- 在海量信息中挖掘技术潜在有用的模式或者信息。
而挖掘的效果, 直接受到源数据质量的影响。
就是说,高质量的数据是有效挖掘的前提。
文章目录
为什么要数据预处理
数据 不够干净好用 ,就要清洗~
实际中的原始数据 ,存在诸多问题:
- 不完整
- 缺少感兴趣属性的 属性值
- 在编码上存在问题
数据处理的一般工作
数据清理、数据集成、数据变换、数据归约
并且,这几步工作,是有先后顺序的。
数据处理工作 | 具体操作 |
---|---|
数据清理 | 填写空缺数据,平滑噪声数据,识别、删除孤立点,解决不一致性 |
数据集成/聚合 | 集成多个数据库,数据立方体或文件 |
数据变换 | 规范化和特征构造。变成适合挖掘的形式 |
数据归约 | 得到数据集的压缩表示及特征选择 |
数据离散化 。
是数据变换的一个重要操作。
方法和目的和意义是:
通过概念分层和数据离散化来规约数据。对数值数据特别重要
数据清理Data Cleaning
Data in the Real World Is Dirty: Lots of potentially incorrect data, e.g.,
instrument faulty, human or computer error, transmission error
- 不完整的incomplete:有感兴趣的属性缺少属性值
Occupation=“ ” (missing data) - 含噪声的noisy: 包含错误的或是“孤立点”
Salary=“−10” (an error) - 不一致的inconsistent: 在命名或是编码上存在差异
Age=“42”, Birthday=“03/07/2010”
Was rating “1, 2, 3”, now rating “A, B, C”
1.对于缺失值
策略 | 操作 |
---|---|
忽略属性列 | 如果该属性的缺失值太多,如超过80%,则在整个数据集中忽略该属性 |
人工填写缺失值 | 通常情况下,该方法费时费力,并且当数据集很大或缺少很多值时,该方法可能行不通 |
自动填充缺失值 | 有三种不同的策略。策略一:将缺失的属性值用同一个常数替换策略二:使用与给定记录属同一类的所有样本的均值或众数填充。策略三:用可能值来代替缺失值:可以用回归、基于推理的工具或决策树归纳确定 |
2.噪声数据的平滑处理
导致噪声产生的原因有: (人为和非人为)
- 数据收集的设备故障
- 数据录入过程中人的疏忽
- 数据传输过程中的错误
- 分箱(binning)
考察“邻居”的值(周围的值)来平滑有序数据的值
(将数据落入箱中来平滑数据) - 聚类
聚类将类似的值组织成群或“簇”。 - 回归
让数据适合一个函数来平滑数据
举例:
- 分箱