专栏首页数据派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和机器学习算法基础,希望能与各位大佬交流切磋长姿势。

本文分享自微信公众号 - 数据派THU(DatapiTHU),作者:数据派

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 独家 | 一文读懂随机森林的解释和实现(附python代码)

    本文从单棵决策树讲起,然后逐步解释了随机森林的工作原理,并使用sklearn中的随机森林对某个真实数据集进行预测。

    数据派THU
  • 揭秘深度学习成功的数学原因:从全局最优性到学习表征不变性

    来源:机器之心 本文长度为4900字,建议阅读7分钟 本文为深层网络的若干属性,如全局最优性、几何稳定性、学习表征不变性,提供了一个数学证明。 近年来,深度学习...

    数据派THU
  • AI未来发展的三种模式 | CCF-GAIR人工智能前沿专场随笔

    2017年7月7日-2017年7月9日,由中国计算机协会CCF主办、雷锋网和香港中文大学(深圳)联合承办的CCF-GAIR全球人工智能与机器人峰会,在深圳大中华...

    数据派THU
  • 数据的预处理基础:如何处理缺失值

    数据清理/探索性数据分析阶段的主要问题之一是处理缺失值。缺失值表示未在观察值中作为变量存储的数据值。这个问题在几乎所有研究中都是常见的,并且可能对可从数据得出...

    deephub
  • Confluence 6 大致的用户规模示例

    针对非集群 Confluence 实例,下面是一些硬件配置。上面的内存数量不区分服务器使用的内存还是 JVM 使用的内存,表格中的空白,表示的是没有这方面的数据...

    HoneyMoose
  • R包vegan的非度量多维标度(NMDS)分析

    非度量多维标度(Non-metric Multidimensional Scaling,NMDS)分析,是主坐标分析(PCoA)的非度量替代方法。NMDS基于对...

    用户7585161
  • 安全狗一键优化后出现网站无法访问的解决方法

    今天使用了他的服务器优化功能,基本上点了一键优化,网站出现无法访问的现象,报错“ERR_CONNECTION_TIMED_OUT”。

    德顺
  • 人工智能助力OMO商业模式崛起

    近年来,随着我国云计算,云存储,人工智能技术的飞速发展,线上数据的不断丰富,和移动支付技术的快速普及,人工智能时代,一种新的商业模式逐渐成形。这种模式就是OMO...

    企鹅号小编
  • Linux下创建可执行bin安装文件

    1、简化操作。一般的软件安装过程,如果想要精简步骤,我们一般会将需要在命令行中输入的命令写成一个脚本,同时将安装介质准备好。我们将脚本和安装介质上传到生产环境,...

    大江小浪
  • 虾说区块链-48-《精通比特币》笔记三

    一直在说区块链是一系列技术结合后的新的技术架构,那么这里分别介绍下这些相关技术,也涉及到一些扩展开去的相关内容。 ? 区块链-《精通比特币》笔记三: 电子书阅读...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券