前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >独家 | 手把手教你处理数据中的缺失值

独家 | 手把手教你处理数据中的缺失值

作者头像
数据派THU
发布2020-07-13 15:51:19
1.2K0
发布2020-07-13 15:51:19
举报
文章被收录于专栏:数据派THU数据派THU
作者:Leopold d’Avezac

翻译:廖倩颖

校对:杨毅远

本文长度为1900字,建议阅读8分钟

本文为大家介绍了数据缺失的原因以及缺失值的类型,最后列举了每一种缺失值类型的处理方法以及优缺点。

标签:离群数据 填充

不论是机器学习模型,KPI或者报告,缺失值和它们的替代值都会导致你的分析结果出现巨大错误。通常分析人员只用一种方式处理缺失值。但事实并非如此,下面我们会介绍三种类型的缺失值以及其对应的解决方法。

空值(null)的类型

随机遗失(MAR):在变量中空值的出现并非随机,而是取决于记录中已知或者是未知的特征。那么你可能会问自己,为什么其被称为随机遗失呢?这是因为空值与其实际值无关。这取决于你的数据集是否能被测试。为了找出替代值,你应该比较其他变量的分布,以获取具有缺失值和非缺失值的记录。

比如:一个关于教育的数据集缺失了很多小孩的IQ测试分数,只是因为相比十二岁的孩子,四岁的孩子很少会通过这个测试。所以出现的空值与IQ实际值没有相关性,而与年龄相关。

完全随机缺失(MCAR):空值的出现与记录中已知或者未知特征是完全无关的。再次重申,这取决于你的数据集是否能被测试。就像随机遗失(MAR)一样,测试应该比较有缺失值的记录和无空值的记录的其他变量的分布。

比如:在邮件中缺失的调查对象的问卷结果,完全独立于相关变量和受访者的特征(即记录)。

非随机缺失(MNAR):空值的出现取决于它的实际值。这个无法被测试,除非你知道实际值,这又是矛盾的。

比如:只有得低分的个体的IQ变量值缺失。

你可能已经想过,在第二个例子中,只有删除空值是最安全的做法。

在其他两种情况中,删除空值会导致无视整体统计人口中的一组。

在最后一个例子中,记录拥有空值的事实中会携带一些关于实际值的信息。

处理缺失数据

  • 删除

删除行:(只对于完全随机缺失(MCAR))如果缺失值只占数据集的一小部分,删除行是一个完美解决方案。但是,当比例上升时,这很快就行不通了。

删除列:我们通常不考虑这个方法因为这会导致重要信息丢失。一般来说,当空值比例高于60%时,你可以开始考虑删除列。

  • 分配新值

上一个或下一个值:(仅用于完全随机缺失(MCAR)的时间序列)只要你在处理时间序列问题,你就可以使用最后或下一个值填充缺失值。

平均值:(仅用于完全随机缺失(MCAR))因为平均值对异常值敏感,所以用平均值并非是一个好的选择。

中位数值:(仅用于完全随机缺失(MCAR))类似于平均值,但是对异常值更稳定。

众数值:(仅用于完全随机缺失(MCAR))通过选择最常见的值,可以确定大部分时间你正确填充空值。但是要小心多众数分布,因为对于此,使用众数就不再是一个可行的方案。

用常数填充:(仅用于非随机缺失(MNAR))正如我们之前看到的,非随机缺失(MNAR)情况下的缺失值实际上包含很多有关实际值的信息。所以,用常数值来填充空值是可行的(不同于其他类型数值)。

线性插值法:(仅用于完全随机缺失(MCAR)下的时间序列)在具有趋势和几乎没有季节性问题的时间序列中,我们可以用缺失值前后的值进行线性插值来估算出缺失值。

样条插值法:(仅用于完全随机缺失(MCAR)下的时间序列)这个方法和线性插值法相似,但是因为样条插值法使用高阶多项式特征从而得到了更平滑的插值。重申,这个方法不适用于季节性数据。

具有季节性调整的线性/样条插值法:(只适用于完全随机缺失(MCAR)情况下的时间序列)这个方法和线性、样条插值法原理一致,但是对于季节性进行了调整。它包括了消除季节变动的影响,应用线性/样条插值法和对时间序列应用季节性。下面是一个对于STL(一种数据去季节性的方法)的详细解释。

详细解释

https://towardsdatascience.com/stl-decomposition-how-to-do-it-from-scratch-b686711986ec

线性回归,KNN,MCMC,多元高斯或者任何机器学习算法:(仅用于随机遗失(MAR))使用这一方法可能需要额外的工作,但是这是处理随机遗失(MAR)唯一可行的方案。因为这个方法考虑了其他变量的记录值,所以我们可以使用这些变量缺失和非缺失值的不同信息来预测缺失值。

多重插补法:(仅适用于随机遗失(MAR)和完全随机遗失(MCAR))多重插补法是最好的处理缺失值的方法。这个方法用一个模型多次估算缺失值,因为模型允许同一个观测结果有不同的预测值。使同一观测对象的预测值差异化的解决方案可以用一个类似线性回归的模型。假设一个模型参数来自一个你可以让每一步估算过程中产生小小的变化,想知道更多这个技巧可以查看下方链接。对于每一步的估算,都有一个新的数据集产生。然后对每个数据集进行分析。完成之后,计算不同数据集结果的平均值和标准方差,给出一个具有“置信区间”的输出值的近似值。

技巧:

https://rmisstastic.netlify.app/tutorials/Erler_course_MultipleImputation_2018/Erler_slides_MICourse_2018.pdf

原文标题:

Don’t let missing values ruin your analysis output, Deal with them!

原文链接:

https://towardsdatascience.com/dont-let-missing-values-ruin-your-analysis-output-deal-with-them-5d9c7686366c

编辑:王菁 校对:龚力

译者简介

廖倩颖,马里兰大学公园分校市场分析专业硕士毕业,本科毕业于上海海洋大学包装工程专业。喜欢音乐、电影和看书,我对于数据科学和数据可视化比较有兴趣,最近在学习CV和机器学习算法基础,希望能与各位大佬交流切磋长姿势。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据派THU 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档