手把手带你入门数据插补(附代码)

本文将为你介绍数据缺失时的处理办法。

1. Feature Imputation

Feature Imputation是指数据中的数据缺失某些特征值的时候,用一定的方法来解决此问题的过程。

2. 缺失值的分类

按照数据缺失机制可分为:

  1. 完全随机缺失(missing completely at random, MCAR):所缺失的数据发生的概率既与已观察到的数据无关,也与未观察到的数据无关.

  2. 随机缺失(missing at random, MAR):假设缺失数据发生的概率与所观察到的变量是有关的,而与未观察到的数据的特征是无关的。MCAR与MAR均被称为是可忽略的缺失形式。

  3. 不可忽略的缺失(non-ignorable missing ,NIM)亦称为非随机缺失(not missing at random, NMAR),也有研究将其称为MNAR(missing not at random):如果不完全变量中数据的缺失既依赖于完全变量又依赖于不完全变量本身,这种缺失即为不可忽略的缺失。

3.数据缺失的时候的处理办法

3.1 删除缺失值

这是一种很常用的策略。

缺点:如果缺失值太多,最终删除到没有什么数据了。那就不好办了。

3.2 插入填补数据

下面介绍如何生成数据用于特定地方的填补。

4. 常用的缺失值的填补方法

4.1 均值法(Mean-substitution)

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

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

4.2 随机填补

一直感觉这个方法不好,就是随机在那一列属性中找个数填补到缺失值里。

缺点:不靠谱。

4.3 热卡填补法(Hot-Deck)

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

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

补充,对应的还有冷卡法(Cold-Deck)。

4.4 最近距离决定填补法

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

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

4.5 回归填补法(Regression)

假设我y属相缺失,然后我知道x属性,然后我用回归方法对没有确实的数据进行训练模型,再把这个值得x属性带进去,对这个y属性进行预测,然后填补到缺失处。

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

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

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

4.7 极大似然估计(Max Likelihood ,ML)

在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计(Little and Rubin)。这种方法也被称为忽略缺失值的极大似然估计,对于极大似然的参数估计实际中常采用的计算方法是期望值最大化(Expectation Maximization,EM)。该方法比删除个案和单值插补更有吸引力,它一个重要前提:适用于大样本。有效样本的数量足够以保证ML估计值是渐近无偏的并服从正态分布。但是这种方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。

参考文献

  • 浅谈数据挖掘中的数据处理(缺失值处理以及异常值检测)

https://www.cnblogs.com/xiaohuahua108/p/6237906.html

作者介绍:邵洲,在读博士。研究兴趣:数据挖掘、学者迁徙研究。

(0)

相关推荐