失值的产生的原因多种多样,主要分为机械原因和人为原因。机械原因是由于机械原因导致的数据收集或保存的失败造成的数据缺失,比如数据存储的失败,存储器损坏,机械故障导致某段时间数据未能收集(对于定时数据采集而言)。人为原因是由于人的主观失误、历史局限或有意隐瞒造成的数据缺失,比如,在市场调查中被访人拒绝透露相关问题的答案,或者回答的问题是无效的,数据录入人员失误漏录了数据。
2.缺失值的类型缺失值从缺失的分布来讲可以分为完全随机缺失,随机缺失和完全非随机缺失。
- 完全随机缺失(missing completely at random,MCAR)指的是数据的缺失是随机的,数据的缺失不依赖于任何不完全变量或完全变量。
- 随机缺失(missing at random,MAR)指的是数据的缺失不是完全随机的,即该类数据的缺失依赖于其他完全变量。
- 完全非随机缺失(missing not at random,MNAR)指的是数据的缺失依赖于不完全变量自身。
从缺失值的所属属性上讲,
如果所有的缺失值都是同一属性,那么这种缺失成为单值缺失,如果缺失值属于不同的属性,称为任意缺失。
另外对于时间序列类的数据,可能存在随着时间的缺失,这种缺失称为单调缺失。
3.缺失值处理方法对于缺失值的处理,从总体上来说分为删除存在缺失值的个案和缺失值插补。
对于主观数据,人将影响数据的真实性,存在缺失值的样本的其他属性的真实值不能保证,那么依赖于这些属性值的插补也是不可靠的,所以对于主观数据一般不推荐插补的方法。插补主要是针对客观数据,它的可靠性有保证。
含有缺失数据的样本,你要么删了,要了就填充上什么值,或者啥也不干(但是不处理的话可能训练的时候直接自动给你填充NaN或者None之类的值,更加影响模型,甚至报错)。删了就会损失一部分的样本信息,填充要是填充的不合适,会给样本增加噪音。
(0)不处理缺失值不处理也是一种艺术。有时候补齐处理只是将未知值补以我们的主观估计值,不一定完全符合客观事实,在对不完备信息进行补齐处理的同时,或多或少地改变了原始的信息系统。对空值不正确的填充往往将新的噪声引入数据中,使挖掘任务产生错误的结果。
(1)删除含有缺失值的数据直接删除即可,略。
(2)使用可能的值填充缺失值 ① 均值、中位数、众数、分位数 ②极大似然估计在缺失类型为随机缺失的条件下,假设模型对于完整的样本是正确的,那么通过观测数据的边际分布可以对未知参数进行极大似然估计(Little and Rubin)。这种方法也被称为忽略缺失值的极大似然估计,对于极大似然的参数估计实际中常采用的计算方法是期望值最大化(Expectation Maximization,EM)。该方法比删除个案和单值插补更有吸引力,它一个重要前提:适用于大样本。有效样本的数量足够以保证ML估计值是渐近无偏的并服从正态分布。但是这种方法可能会陷入局部极值,收敛速度也不是很快,并且计算很复杂。
③ 多重插补(Multiple Imputation,MI)多值插补的思想来源于贝叶斯估计,认为待插补的值是随机的,它的值来自于已观测到的值。具体实践上通常是估计出待插补的值,然后再加上不同的噪声,形成多组可选插补值。根据某种选择依据,选取最合适的插补值。
④特殊值填充这个是认为数据的空值也是具有一定的信息的,它之所以为空,是因为它不同于其他的任何数据。所以将空值作为一种特殊的属性值来处理,它不同于其他的任何属性值。如所有的空值都用“unknown”填充。
⑤ 热卡填充对于一个包含空值的对象,热卡填充法在完整数据中找到一个与它最相似的对象,然后用这个相似对象的值来进行填充。
【优缺点】
- 优点:该方法概念上很简单,且利用了数据间的关系来进行空值估计
- 缺点:在于难以定义相似标准,主观因素较多。
先根据欧式距离或相关分析来确定距离具有缺失数据样本最近的K个样本,将这K个值加权平均来估计该样本的缺失数据。
这个方法与热卡填充有些相似,如果最近邻法仅仅考虑最近的一个样本,那么就会退化成热卡填充。不过最近邻法和热卡填充面临同样的问题,如何衡量相似度,这个要根据具体的业务和数据来选择或者定义。
⑦ 模型预测法填充基于完整的数据集,建立合适的预测模型。对于包含空值的对象,将已知属性值代入方程来估计(预测)未知属性值,以此估计值来进行填充。
其实就是假设特征之间也存在一定的关系,可以通过预测来得到缺失值。但是我个人不建议使用这个方法,因为有些麻烦,而且不确定这样得到的填充值的效果。又可能出现模型过拟合等新问题。例如线性插值法
4.参考https://github.com/sladesha/Reflection_Summary
线性插值法
八种缺失值填充方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)