【问题标题】:How do you deal with missing data when it's missing like 60%?当丢失 60% 的数据时,您如何处理丢失的数据?
【发布时间】:2019-07-23 06:15:50
【问题描述】:

我的数据有很多缺失值,我必须预测这些值。一种方法是取这些值的平均值。但我想听听另一种观点。经验丰富的数据科学家如何解决此类问题?

【问题讨论】:

  • 我不是一位经验丰富的数据科学家,但我会尝试了解数据的含义以及预期的价值,即设计一个模型。
  • 这个问题可能更适合 datascience.stackexchange.com

标签: data-science data-science-experience


【解决方案1】:

您的缺失值是分类的还是连续的?

一种方法是完全删除样本,但这可能会导致抽样偏差,因为缺失值可能是某种因果效应的结果,即缺失值并非完全随机缺失。

如果你的数据有足够的维度,你可以将你的缺失值作为输出,并尝试应用一个预测模型,并希望它能够在你已经拥有的解释变量的情况下忠实地估计缺失值。

选择最常见的值、中位数或您指出的平均值也是一种选择,但是在平均时要小心异常值,因为它们会对平均值产生巨大影响。

【讨论】:

  • 我正在尝试使用 dataframe = dataframe.dropna() 删除 NaN 值,但它不起作用。如果我能以某种方式移除 NaN 值,我可以使用简单的线性回归模型根据其他变量预测缺失值。
【解决方案2】:

这取决于变量的性质,可能是一些统计数据,如平均值或中位数。另一种做法是为缺失变量分配一些与其他变量不同的值,例如 0、-1 或类似的值。

【讨论】:

    【解决方案3】:

    最难的方法是估算数据集,而不是偏离事实太远。下面是一个测试,以验证您在这方面做得如何。如果其他参数提供了足够有证据的洞察力来估算缺失数据的精确度……它应该能够使用现有数据来做到这一点。

    因此,如果 60% 的列缺失,则获取该列存在的行观察值。

    接下来,随机选择删除 60% 的子集数据。现在运行您选择的插补方法。

    比较估算数据集与真实数据集的相似性。确定它们是否足够接近您,然后针对完整数据集运行此操作。如果您需要保护自己,至少这种方法可以让您站稳脚跟。

    打好仗。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-11
      • 2015-05-31
      • 1970-01-01
      • 2020-10-03
      • 2015-06-18
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多