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

作者: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数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值