处理缺失值:当大多数列(重要列)中缺少 99% 的数据时



我的一个项目正面临两难境地。很少有变量没有足够的数据,这意味着几乎99%的数据观测缺失。

我正在考虑几个选择——

  • 使用均值/knn 插补插补缺失值

  • 用 0 插补缺失值。

我想不出这个方向的任何事情。如果有人能帮忙,那就太好了。

附言当 99% 的数据丢失时,我感到不舒服使用平均插补。有人对此有理由吗?请告诉我。

数据有397576观测值,其中以下为缺失值 在此处输入图像描述

99% 的数据丢失!!??? 好吧,如果您的数据集包含少于 100,000 个示例,那么您可能希望删除这些列,而不是通过任何方法插补。 如果您有更大的数据集,那么使用均值插补或 knn 插补将是......还行。这些方法不会捕获数据的统计信息,并且可能会占用内存。而是使用机器学习的贝叶斯方法,例如通过数据拟合高斯过程或变分自动编码器到这些稀疏列。
1.) 以下是一些学习和使用高斯过程从数据集中采样缺失值的链接:
什么是随机过程?
如何使用 GP 处理缺失值?

2.) 您还可以使用 VAE 来估算缺失值!!
尝试阅读本文

我希望这有帮助!

我给出一个好答案的第一个问题是:

您实际上要尝试将已完成的数据存档为什么?

. 人们出于不同的原因插补数据,用例会产生很大的不同,例如,您可以将插补用作:

  1. 训练机器学习模型的预处理步骤
  2. 拥有没有间隙的漂亮图形/绘图的解决方案
  3. 用于评估科学或医学研究的统计推断工具

99%的缺失数据很多 - 在大多数情况下,您可以预期,这不会产生任何有意义的结果。

对于某些变量,它仍然可能有意义并至少产生一些有意义的东西 - 但您必须谨慎处理并仔细考虑您的解决方案。

一般来说,你可以说,插补不会凭空创建条目。现有数据中必须存在模式 - 然后将其应用于缺失的数据。 您可能必须在变量的基础上决定什么是有意义的。

以变量电子邮件为例: 根据您的数据方式 - 可能每行代表具有特定电子邮件地址的不同客户。因此,每一行都应该是唯一的邮件地址。在这种情况下,插补不会有任何好处 - 算法应该如何猜测电子邮件。但是,如果数据结构不同,客户出现在多行中,那么算法仍然可以填充一些有意义的数据。看到客户编号 4 始终具有相同的邮件地址,并将其填充到仅提供客户编号 4 且邮件丢失的行中。

最新更新