缺失值的处理

一、造成数据缺失的原因

在各种实用的数据库中,属性值缺失的情况经常发全甚至是不可避免的。因此,在大多数情况下,信息系统是不完备的,或者说存在某种程度的不完备。

缺失值的产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,机械故障导致某段时间数据未能收集(对于定时数据采集而言)。人为原因是由于人的主观失误、历史局限或有意隐瞒造成的数据缺失,比如,在市场调查中被访人拒绝透露相关问题的答案,或者回答的问题是无效的,数据录入人员失误漏录了数据。

造成数据缺失的原因是多方面的,主要可能有以下几种:

有些信息暂时无法获取。例如在医疗数据库中,并非所有病人的所有临床检验结果都能在给定的时间内得到,就致使一部分属性值空缺出来。又如在申请表数据中,对某些问题的反映依赖于对其他问题的回答。

有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写了或对数据理解错误而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障、一些人为因素等原因而丢失了。

有些对象的某个或某些属性是不可用的。也就是说,对于这个对象来说,该属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入状况等。

有些信息(被认为)是不重要的。如一个属性的取值与给定语境是无关的,或训练数据库的设计者并不在乎某个属性的取值(称为dont-care value)。

获取这些信息的代价太大。

统实时性能要求较高,即要求得到这些信息前迅速做出判断或决策。

二、数据缺失机制

1. 完全随机缺失(Missing Completely at Random,MCAR)

数据的缺失与不完全变量以及完全变量都是无关的。

完全随机缺失(MCAR,Missing Completely At Random),指的是数据的缺失不依赖于自身或者其他变量,完全是随机的。比如你在街头请路人填问卷采集数据,路人很可能由于某种原因(肚子疼,或者他妈喊他回家吃饭等等)中途撤走,那么你的数据就不完整了。再比如你的质谱在采集数据过程中,不小心受到某种程度的扰动(鬼知道仪器经历了什么…),导致你的数据受到影响,最后在搜库匹配时,无法给出对应的定量信息。这种情况指不清道不明,完全随机,所以它对你整个数据的影响没有任何的偏好性,呈现均一分布。

2.随机缺失(Missing at Random,MAR)

数据的缺失仅仅依赖于完全变量。

随机缺失(MAR,Missing At Random),指的是数据的缺失不是完全随机的,该类数据的缺失依赖于其他观测变量。比如时间梯度越长的采集越可能有缺失值的出现。这个时候,若是我们将时间变量进行控制,那么数据的缺失也就变成了完全随机的了。所以也有人认为MCAR和MAR二者没啥区别,或者认为MCAR是MAR的一个特例(doi:10.1186/1471-2105-13-S16-S5)。

3.非随机、不可忽略缺失(Not Missing at Random,NMAR,or nonignorable)

不完全变量中数据的缺失依赖于不完全变量本身,这种缺失是不可忽略的。

非随机缺失(MNAR,Missing Not At Random),指的是数据的缺失依赖于观测变量自身。比如在质谱检测的过程中,某些肽段的含量在仪器的检测限以下,这些肽段的定量信息就很有可能丢失,但是你又不能说这些肽段真的不存在,所以这种情况是比较纠结的,这就是所谓的左删失数据(left-censored data)。

从缺失值的所属属性上讲,如果所有的缺失值都是同一属性,那么这种缺失成为单值缺失,如果缺失值属于不同的属性,称为任意缺失。另外对于时间序列类的数据,可能存在随着时间的缺失,这种缺失称为单调缺失。

三、空值语义

对于某个对象的属性值未知的情况,我们称它在该属性的取值为空值(null value)。空值的来源有许多种,因此现实世界中的空值语义也比较复杂。总的说来,可以把空值分成以下三类:

1)不存在型空值。即无法填入的值,或称对象在该属性上无法取值,如一个未婚者的配偶姓名等。

2)存在型空值。即对象在该属性上取值是存在的,但暂时无法知道。一旦对象在该属性上的实际值被确知以后,人们就可以用相应的实际值来取代原来的空值,使信息趋于完全。存在型空值是不确定性的一种表征,该类空值的实际值在当前是未知的。但它有确定性的一面,诸如它的实际值确实存在,总是落在一个人们可以确定的区间内。一般情况下,空值是指存在型空值。

3)占位型空值。即无法确定是不存在型空值还是存在型空值,这要随着时间的推移才能够清楚,是最不确定的一类。这种空值除填充空位外,并不代表任何其他信息。

四、空值处理方法

处理不完备数据集的方法主要有以下三大类:

5.1 删除元组

5.2 数据补齐

这类方法是用一定的值去填充空值,从而使信息表完备化。通常基于统计学原理,根据决策表中其余对象取值的分布情况来对一个空值进行填充,譬如用其余属性的平均值来进行补充等。数据挖掘中常用的有以下几种补齐方法:

5.2.1 人工填写(filling manually)
5.2.2 特殊值填充(Treating Missing Attribute values as Special values)
5.2.3 平均值填充(Mean/Mode Completer)
5.2.4 热卡填充(Hot deck imputation,或就近补齐)
5.2.5 K最近距离邻法(K-means clustering)
5.2.6 使用所有可能的值填充(Assigning All Possible values of the Attribute)
5.2.7 组合完整化方法(Combinatorial Completer)
5.2.8 回归(Regression)
5.2.9 期望值最大化方法(Expectation maximization,EM)

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

EM算法是一种在不完全数据情况下计算极大似然估计或者后验分布的迭代算法。在每一迭代循环过程中交替执行两个步骤:E步(Excepctaion step,期望步),在给定完全数据和前一次迭代所得到的参数估计的情况下计算完全数据对应的对数似然函数的条件期望;M步(Maximzation step,极大化步),用极大化对数似然函数以确定参数的值,并用于下步的迭代。算法在E步和M步之间不断迭代直至收敛,即两次迭代之间的参数变化小于一个预先给定的阈值时结束。该方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。

5.2.10 有序K近邻法(Sequential KNN)
5.2.11 C4.5方法

5.3 不处理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值