Press "Enter" to skip to content

特征工程|缺失值的类型介绍和N+1种解决办法

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

在实际的生产环境中,数据集中可能存在缺失值,在一定程度上会影响模型的性能表现。虽然一些模型内部(LightGBM、XGBoost、Catboost等)对于缺失值已经进行了相关处理,但是大多数模型都是不支持处理缺失值的,这时候就需要我们人工去进行调整,这时候首先需要了解一下数据缺失的原因和类型。

 

1、数据缺失的原因

 

数据的缺失是我们无法避免的,可能的原因有很多种,总结有以下三大类:

 

无意的:信息被遗漏,比如由于工作人员的疏忽,忘记而缺失;或者由于数据采集器等故障等原因造成的缺失,比如系统实时性要求较高的时候,机器来不及判断和决策而造成缺失

 

有意的:有些数据集在特征描述中会规定将缺失值也作为一种特征值,这时候缺失值就可以看作是一种特殊的特征值

 

不存在:有些特征属性根本就是不存在的,比如一个未婚者的配偶名字就没法填写,再如一个孩子的收入状况也无法填写

 

总而言之,对于造成缺失值的原因,我们需要明确: 是因为疏忽或遗漏无意而造成的,还是说故意造成的,或者说根本不存在 。只有知道了它的来源,我们才能对症下药,做相应的处理。

 

2、数据缺失的类型

 

在对缺失数据进行处理前,了解数据缺失的机制和形式是十分必要的。将数据集中不含缺失值的变量称为 完全变量 ,数据集中含有缺失值的变量称为 不完全变量 。而从缺失的分布来将缺失可以分为 完全随机缺失 , 随机缺失 和 完全非随机缺失 。

 

完全随机缺失(missing completely at random,MCAR):指的是数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏性,如家庭地址缺失

 

随机缺失(missing at random,MAR):指的是数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量,如财务数据缺失情况与企业的大小有关

 

非随机缺失(missing not at random,MNAR):指的是数据的缺失与不完全变量自身的取值有关,如高收入人群不愿意提供家庭收入

 

对于随机缺失和非随机缺失,直接删除记录是不合适的,原因上面已经给出。随机缺失可以通过已知变量对缺失值进行估计,而非随机缺失的非随机性还没有很好的解决办法。

 

3、数据缺失的处理

 

了解数据缺失的原因和缺失的类型之后,就需要对不同缺失类型的数据进行对应的处理办法,常见的缺失值处理方法有下面这些。

 

3.1 删除样本数据

 

即将含有缺失值的样本删除掉即可,是对缺失值处理的最原始的办法。如果数据缺失问题可以通过简单的删除小部分样本来达到目标,那幺这个方法是最有效的。但是当缺失的样本占比比较高时,则是不合适的。

 

3.2 特殊值填充

 

用一个特征的字符串进行表示,比如「unknown」、「null」等,这和原来的缺失值的意思还是有一点差别的。在这里unknown、null可以当做一种取值的可能性。

 

3.3 虚拟变量

 

3.4 单变量特征处理

 

平均值填充:对于数字类型的变量,可以使用没有缺失值的一些信息进行估计,使用用平均值进行的估计称为平均值填充

 

中位数填充:和平均值填充类似,使用中位数填充的估计称为中位数填充

 

众数填充:对于分类变量可以使用众数来进行填充

 

范围内随机填充:即使用某个范围内的值进行随机填充

 

均值加减标准差:即划分一个置信区间,在置信区间内随机取值进行填充

 

Q2、Q3:即使用数据的分位数范围内的值进行随机填充

 

3.5 多元特征处理

 

3.5.1 热卡填补

 

对于一条包含缺失值的样本,热卡填充法是在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。

 

其优点为:该方法概念上很简单,且利用了数据间的关系来进行空值估计,缺点:在于难以定义相似标准,主观因素较多。

 

3.5.2 K近邻

 

先根据某种距离度量方式来确定距离具有缺失数据样本最近的个样本,将这个值加权平均来估计该样本的缺失数据。

 

这个方法与热卡填充有些相似, 如果最近邻法仅仅考虑最近的一个样本,那幺就会退化成热卡填充 。不过最近邻法和热卡填充面临同样的问题,如何衡量相似度。

 

3.5.3 回归拟合

 

基于完整的数据集,建立回归方程,或利用机器学习中的回归算法。对于包含空值的对象,将已知属性值代入方程来估计未知属性值,以此估计值来进行填充。当变量不是线性相关时会导致有偏差的估计。

 

3.5.4 极大似然估计

 

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

 

3.5.5 基于决策树

 

通过寻找属性间的关系来对遗失值填充。它寻找之间具有最大相关性的两个属性,其中没有遗失值的一个称为代理属性,另一个称为原始属性,用代理属性决定原始属性中的遗失值。这种基于规则归纳的方法只能处理基数较小的名词型属性。

 

3.5.6 基于随机森林

 

随机森林是由很多个决策树组成的,首先要建立Bootstrap数据集,即从原始的数据中有放回地随机选取一些,作为新的数据集,新数据集中会存在重复的数据,然后对每个数据集构造一个决策树,但是不是直接用所有的特征来建造决策树,而是对于每一步,都从中随机的选择一些特征,来构造决策树,这样我们就构建了多个决策树,组成随机森林,把数据输入各个决策树中,看一看每个决策树的判断结果,统计一下所有决策树的预测结果,Bagging整合结果,得到最终输出。

 

那幺,随机森林中如何处理缺失值呢?根据随机森林创建和训练的特点,随机森林对缺失值的处理还是比较特殊的。首先,给缺失值预设一些估计值,比如数值型特征,选择其余数据的中位数或众数作为当前的估计值,然后,根据估计的数值,建立随机森林,把所有的数据放进随机森林里面跑一遍。记录每一组数据在决策树中一步一步分类的路径,然后来判断哪组数据和缺失数据路径最相似,引入一个相似度矩阵,来记录数据之间的相似度,比如有N组数据,相似度矩阵大小就是N*N,如果缺失值是类别变量,通过权重投票得到新估计值,如果是数值型变量,通过加权平均得到新的估计值,如此迭代,直到得到稳定的估计值。

 

其实,该缺失值填补过程类似于推荐系统中采用协同过滤进行评分预测,先计算缺失特征与其他特征的相似度,再加权得到缺失值的估计,而随机森林中计算相似度的方法(数据在决策树中一步一步分类的路径)乃其独特之处。

 

3.5.7 多重插补

 

多值插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。

 

多重插补方法分为三个步骤:

 

1.为每个空值产生一套可能的插补值,这些值反映了无响应模型的不确定性;每个值都可以被用来插补数据集中的缺失值,产生若干个完整数据集合

 

2.每个插补数据集合都用针对完整数据集的统计方法进行统计分析

 

3.对来自各个插补数据集的结果,根据评分函数进行选择,产生最终的插补值

 

假设一组数据,包括三个变量,它们的联合分布为正态分布,将这组数据处理成三组,组保持原始数据,组仅缺失,组缺失和。在多值插补时,对组将不进行任何处理,对组产生的一组估计值(作关于的回归),对组作产生和的一组成对估计值(作关于的回归)。

 

当用多值插补时,对组将不进行处理,对组将完整的样本随机抽取形成为组(为可选择的组插补值),每组个数只要能够有效估计参数就可以了。对存在缺失值的属性的分布作出估计,然后基于这组观测值,对于这组样本分别产生关于参数的组估计值,给出相应的预测即可,这时采用的估计方法为极大似然法,在计算机中具体的实现算法为期望最大化法(EM)。对组估计出一组的值,对将利用它们的联合分布为正态分布这一前提,估计出一组()。

 

上例中假定了的联合分布为正态分布。这个假设是人为的,但是已经通过验证(Graham和Schafer于1999),非正态联合分布的变量,在这个假定下仍然可以估计到很接近真实值的结果。

 

多重插补和贝叶斯估计的思想是一致的,但是多重插补弥补了贝叶斯估计的几个不足。

 

贝叶斯估计以极大似然的方法估计,极大似然的方法要求模型的形式必须准确,如果参数形式不正确,将得到错误得结论,即先验分布将影响后验分布的准确性。而多重插补所依据的是大样本渐近完整的数据的理论,在数据挖掘中的数据量都很大,先验分布将极小的影响结果,所以先验分布的对结果的影响不大。

 

贝叶斯估计仅要求知道未知参数的先验分布,没有利用与参数的关系。而多重插补对参数的联合分布作出了估计,利用了参数间的相互关系。

 

3.6 人工填写

 

大数据场景下的智障操作方式。

 

一般情况下,会使用特殊值填充、平均值填充、热卡填补这几种方法!

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注