【问题标题】:Handling a missing value in machine learning处理机器学习中的缺失值
【发布时间】:2020-03-07 19:48:01
【问题描述】:

我正在分析一个数据集,其中我的列名如下:[id、location、tweet、target_value]。我想处理某些行中列 location 的缺失值。所以我想从该行的 tweet 列中提取位置(如果推文包含某个位置)本身并将该值放在 location 该行的列。

现在我对上述方法有一些疑问。

这是一个很好的方法吗?我们可以通过使用训练数据本身来填充一些缺失值吗?这不会被视为冗余特征(因为我们正在使用其他一些特征推导该特征的值)

【问题讨论】:

    标签: machine-learning statistics data-science missing-data feature-engineering


    【解决方案1】:

    您能否再澄清一下您的数据集?

    首先,如果我们假设位置是已发布推文的信息,那么您的方法(在缺少该信息的行中填写位置列)就会出错。

    其次,如果我们假设推文包含正确的位置信息,那么您可以使用推文的位置信息填写缺失的行。

    如果我们的第二个假设是正确的,那么这将是一个好方法,因为您正在为数据集提供正确的信息。换句话说,您正在为模型提供更详细的信息,以便它可以在测试过程中更正确地预测。

    关于您关于“这不会被视为冗余功能(因为我们使用其他功能推导此功能的值)”的问题

    您可以尝试从模型中删除位置列,并使用其余 3 列训练模型。然后,您可以使用不同的参数(准确度等)检查新模型的成功与否。您可以将其与您使用所有 4 个不同列训练的模型的结果进行比较。在那之后,如果没有任何重要的区别或者结果变得严重,那么你会说,该列是多余的。您还可以使用主成分分析(PCA) 来检测相关列。

    最后,请永远不要在您的测试数据集中使用训练数据。这会导致过度训练,当您在现实世界环境中使用您的模型时,您的模型很可能会失败。

    【讨论】:

      猜你喜欢
      • 2017-06-23
      • 2023-03-26
      • 1970-01-01
      • 2015-03-05
      • 2017-04-21
      • 2019-10-10
      • 2020-06-07
      • 2021-04-01
      • 2019-05-06
      相关资源
      最近更新 更多