数据挖掘中的数据清洗方法大全

作者:章华燕

编辑:黄俊嘉

在数据挖掘领域,经常会遇到的情况是挖掘出来的特征数据存在各种异常情况,如数据缺失 、数据值异常 等。对于这些情况,如果不加以处理,那么会直接影响到最终挖掘模型建立后的使用效果,甚至是使得最终的模型失效,任务失败。所以对于数据挖掘工程师来说,掌握必要的数据清洗方法是很有必要的!

接下来本文就依次讲解如何处理

数据值缺失数据值异常

两种情况的处理。

1. 缺失值的处理

如下图所示,当我们在进行数据挖掘的过程中,往往会出现如下图所示的情况:某些样本的个别属性出现缺失的情况。

那么出现数据缺失的情况,我们应该怎么处理呢?

1.1 删除缺失值

当样本数很多的时候,并且出现缺失值的样本在整个的样本的比例相对较小,这种情况下,我们可以使用最简单有效的方法处理缺失值的情况。那就是将出现有缺失值的样本直接丢弃。这是一种很常用的策略。

缺点: 改变了样本的数据分布,并且对于缺失值过多的情况无法适用。

1.2 均值填补法

根据缺失值的属性相关系数最大的那个属性把数据分成几个组,然后分别计算每个组的均值,把这些均值放入到缺失的数值里面就可以了。

缺点: 改变了数据的分布,还有就是有的优化问题会对方差优化,这样会让对方差优化问题变得不准确。

1.3 热卡填补法

对于一个包含缺失值的变量,热卡填充法的做法是:在数据库中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。不同的问题可能会选用不同的标准来对相似进行判定。最常见的是使用相关系数矩阵来确定哪个变量(如变量Y)与缺失值所在变量(如变量X)最相关。然后把所有变量按Y的取值大小进行排序。那么变量X的缺失值就可以用排在缺失值前的那个个案的数据来代替了。

缺点: 太麻烦。与均值替换法相比,利用热卡填充法插补数据后,其变量的标准差与插补前比较接近。但在回归方程中,使用热卡填充法容易使得回归方程的误差增大,参数估计变得不稳定,而且这种方法使用不便,比较耗时。

1.4 最近距离决定填补法

假设现在为时间y,前一段时间为时间x,然后根据x的值去把y的值填补好。

缺点: 一般就是在时间因素决定不显著的时候,比如一天的气温,一般不会突然降到很低,然后第二天就升的很高。但是对时间影响比较大的,可能就不可以了。

1.5 回归填补法

假设我y属性存在部分缺失值,然后我知道x属性。然后我用回归方法对没有缺失的样本进行训练模型,再把这个值的x属性带进去,对这个y属性进行预测,然后填补到缺失处。当然,这里的x属性不一定是一个属性,也可以是一个属性组,这样能够减少单个属性与y属性之间的相关性影响。

缺点: 由于是根据x属性预测y属性,这样会让属性之间的相关性变大。这可能会影响最终模型的训练。

1.6 多重填补方法(M-试探法)

它是基于贝叶斯理论的基础上,然后用EM算法来实现对缺失值进行处理的算法。对每一个缺失值都给M个缺失值,这样数据集就会变成M个,然后用相同的方法对这M个样本集进行处理,得到M个处理结果,总和这M个结果,最终得到对目标变量的估计。其实这个方法很简单,就是我尽量多做模型,然后找出最好的,我就叫它M-试探法吧。

1.7 k-最近邻法

先根绝欧氏距离和马氏距离函数来确定具有缺失值数据最近的k个元祖,然后将这个k个值加权(权重一般是距离的比值吧)平均来估计缺失值。

1.8 有序最近邻法

这个方法是在K-最近邻法的基础上,根据属性的缺失率进行排序,从缺失率最小的进行填补。这样做的好处是讲算法处理后的数据也加入到对新的缺失值的计算中,这样即使丢了很多数据,依然会有很好的效果。在这里需要注意的是,欧式距离不考虑各个变量之间的相关性,这样可能会使缺失值的估计不是最佳的情况,所以一般都是用马氏距离进行最近邻法的计算。

1.9 基于贝叶斯的方法

就是分别将缺失的属性作为预测项,然后根据最简单的贝叶斯方法,对这个预测项进行预测。但是这个方法有一个缺点,就是说不能把之前的预测出来的数据加入到样本集,会丢失一些数据,会影响到预测。所以现在就是对属性值进行重要性排序,然后把重要的先预测出来,在加入新的数据集,再用新的数据集预测第二个重要的属性,这样一直处理到最后为止。

2. 异常值的检测与处理

未完待续

敬请期待

原文发布于微信公众号 - 机器学习算法全栈工程师(Jeemy110)

原文发表时间:2017-11-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SnailTyan

ResNet论文翻译——中英文对照

Deep Residual Learning for Image Recognition Abstract Deeper neural networks are...

28780
来自专栏深度学习与计算机视觉

理解图像卷积操作的意义

在图像处理领域,我们经常能听到滤波,卷积之类的词,其实他们都可以看做一种图像的卷积操作,相对应的卷积核,卷积模板,滤波器,滤波模板,扫描窗其实也都是同一个东西。...

73460
来自专栏拂晓风起

验证码去噪 分离背景 分离文字 最大类间方差

13020
来自专栏杨熹的专栏

word2vec 模型思想和代码实现

CS224d-Day 3: word2vec 有两个模型,CBOW 和 Skip-Gram,今天先讲 Skip-Gram 的算法和实现。 课件: https:...

47050
来自专栏生信小驿站

机器学习预测乳腺癌良恶性(1)(逻辑回归)

逻辑回归算法思想:逻辑回归(LogisticRegression)是当前机器学习算法比较常用的方法,可以用来回归分析,也可以用来分类,主要是二分类问题。逻辑回归...

22730
来自专栏机器学习算法原理与实践

scikit-learn 梯度提升树(GBDT)调参小结

    在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参...

80430
来自专栏Pulsar-V

原-图像处理基础(二)图像的放大与缩小

最近邻插值法 ? 其中 size(g(x))代表图像像素矩阵列宽 size(g(y))代表图像像素矩阵行高 scale 代表缩放倍数 \begin{matr...

61270
来自专栏烂笔头

曲线点抽稀算法-Python实现

目录[-] 何为抽稀 在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成所要...

62660
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

基于模糊集理论的一种图像二值化算法的原理、实现效果及代码

  这是篇很古老的论文中的算法,发表与1994年,是清华大学黄良凯(Liang-kai Huang) 所写,因此国外一些论文里和代码里称之为Huang's fu...

322110
来自专栏Python小屋

KNN分类算法原理与Python+sklearn实现根据身高和体重对体型分类

KNN算法是k-Nearest Neighbor Classification的简称,也就是k近邻分类算法。基本思路是在特征空间中查找k个最相似或者距离最近的样...

41670

扫码关注云+社区

领取腾讯云代金券