数据挖掘-数据预处理之数据清洗
数据清洗:数据清洗作为数据预处理中的一个步骤,主要用于处理由于数据仓库中数据不完整、数据噪声以及数据不一致导致的问题。
有人可能质疑,为什么要对数据进行清洗?忽略那些出问题的数据不行吗?当然,视而不见确是一种应对策略,但作为数据挖掘中的一环,没有高质量的数据又谈何挖掘的可信性。为此,对于数据数据挖掘来说,数据的清洗大有必要。
对于数据缺失可以简单理解为感兴趣的数据没有值,对于这种情形,常见的处理方法有以下几种方式:
1.忽略该记录;
2.手动填写空缺记录;
3.使用全局默认值;
4.使用属性均值来填充记录;
5.使用同类样本的均值填充记录(多用于具有分类性质的情况中);
6.使用预测值(例如采用回归、构建决策树进行推断等方式来预测可能值);
对于数据噪声可以理解为数据中存在错误或者数据偏离期望值,‘即:测量过程中测量值相对于真实值产生的偏差或错误。去除噪声主要有以下三种方法:
1.分箱:所谓分箱就是对原始数据进行分组,然后对每一组内的数据进行平滑处理。常见的分箱的方式主要有等深分箱(每组数据一样多)、等宽分箱(每组区间长度一样)、用户自定义、最小熵(各分组内的数据具有最小熵,即:最小的不确定性);而平滑的方式主要有均值平滑(用组内均值来代替组内每个元素)、中间值平滑(用组内中间值来代替组内每个元素)、边界平滑(用组内离得较近的边界值来代替组内元素);
2.回归:回归的方法通过对数据进行拟合发现匹配数据的曲线(线性回归)或者面(多线性回归)即拟合函数,进而通过拟合函数对数据进行平滑处理;
3.聚类:聚类将具有相同值的项分在一个Cluster里面,这样就可以很容易得到Outliers。
对于许多平滑方法来说,同样适用于数据规约。例如可以通过分箱的方法可以削减属性的值空间;反之,数据离散化的方法例如概念分层同样可以用于数据平滑处理。
对于数据不一致主要由于数据源不一致导致数据内涵不一致。