【问题标题】:How to fill null value in object attributes in feature engineering?如何在特征工程中的对象属性中填充空值?
【发布时间】:2018-01-27 03:04:14
【问题描述】:

我在特征工程中研究了 Kaggle 上的填充 null 方法。 一些玩家用另一个对象值填充 NA。

例如,sex 列中有 'Male'、'Female' 和 NA 值。该方法是用另一个对象值填充 NA,例如“Middle”。之后,它会处理不带任何 null 的 sex 属性,pandas 不会找到 null。

我想知道该方法对机器学习模型的性能或良好的特征工程有很好的影响吗? 除此之外,在数据集中没有知识发现的情况下,还有其他好的方法来填充 NA 吗?

【问题讨论】:

标签: machine-learning feature-extraction kaggle sklearn-pandas


【解决方案1】:

首先,这取决于您的模型是否可以管理 NA(例如 xgboost)。 其次,辍学是对行为的解释吗(就像一个抑郁的人更有可能跳过一项任务)

关于这个问题有完整的文献。主要的做法是:

  1. 只需删除行
  2. 用替换填充缺失的数据(中位数、最常见的值...)
  3. 填写缺失的数据并添加一些错误

所以在这里,您可以将其保留为 NA 并使用 xgboost,删除不完整的行或将最常见的值放在男性和女性之间

如果你想更进一步,有一些建议:

  1. 尝试了解数据丢失的原因
  2. 对您选择的解决方案执行敏感性分析

【讨论】:

    【解决方案2】:

    这在很大程度上取决于您的数据。 但是您仍然可以做一些事情并检查它们是否有效。

    1.如果与行数相比,缺失值很少,最好删除它们。

    2.如果有较大的缺失值,制作一个特征“IsMissing”(1代表NULL,0代表其他)。有时效果很好。

    3.如果你有很多数据,并且不知何故你发现这个特征真的很重要,你可以训练一个模型来使用你的训练数据来预测男性/女性。然后使用空值的行作为测试数据来预测他们的价值(男性/女性)。

    这都是关于创造力和逻辑的。你所做的每一个假设都不起作用,正如你所看到的,我上面描述的最后一个方法假设 NULL 值只能有两个值(M/F),实际上可能不是这样的。

    所以,尝试不同的策略,看看哪些对您的数据有效。

    希望对你有帮助!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 2021-03-04
      • 2016-11-24
      • 1970-01-01
      • 2010-09-24
      相关资源
      最近更新 更多