在数据挖掘中有一个重要步骤,数据预处理。因为现实世界中的数据存在各种各样的质量问题:
不完整(缺少某些重要属性,或仅仅包含聚合值)
含噪音的(包含错误或存在偏离期望的离群值),而且是不一致的(例如用于商品分类的部门编码存在差异)。
数据清理就是填写缺失的值,光滑噪音数据,识别或删除离群点并解决不一致性来清理数据。
数据清理在数据挖掘中很重要的原因在于,质量低下的数据会大大降低数据挖掘的准确性,影响挖掘结果。甚至导致挖掘过程进入不应该的误区,浪费资源。但同时数据清理在数据挖掘领域之外仍然意义重大:当我们的数据出现问题时,使用数据清理在纠正这些错误,提高数据质量,从而更好的为程序服务。例如某购物网站由于人为/系统问题导致批量商品的类别出现问题时,就可以采用数据清理定位可能有问题的数据并纠正(纠正往往需要人工参与)。
数据挖掘中,数据预处理可分为3个方面:
1,数据清理 -- 填充缺失的数据,光滑噪音,修正不一致问题等。
2, 数据集成和数据变换 -- 集成多个数据源并转化数据使得概念一致。另外在使用基于距离的挖掘算法时,可能需要改变某些数据以减少这些数据的权重。
3, 数据归约 -- 减少数据挖掘的计算量,使得数据挖掘能产生相同的或几乎相同的结果。
数据清理的第一步就是进行描述性数据汇总--通过统计的方法得到数据的总体情况,作为之后清理数据的基础。
数据缺失
有多种方法添加缺失的数据。例如用默认值填充,用数据均值填充。
而常用的做法是用回归,贝叶斯基于推理的算法或决策树进行填充。
噪声noise和不一致性
分箱
回归
聚类
可以利用一些工具来帮助我们清理数据:
data scrubbing tool -- 数据清理工具使用简单的领域知识(如邮编地址知识和拼写检查)检测并纠正数据中的错误。
data audit tool -- 通过分析数据发现规则和联系,并检测违反这些条件的数据来发现偏差。