【问题标题】:How to handle missing columns in test data?如何处理测试数据中的缺失列?
【发布时间】:2018-04-09 20:35:25
【问题描述】:

我有如下训练数据

col1    col2    col3    col4    col5    Target
187.67  448.41  45.7    880070.41   1   -3
95.44   446.08  70.51   909069.06   4   120

我需要建立一个模型并使用以下数据进行测试,

col1    col2    col3
45  2989    12
3   1111    121

测试数据只有三列。我打算用所有 5 列作为训练数据集的特征列来构建一个模型。只用三列训练数据集构建模型并且只使用 3 列测试数据进行预测是否很好?还是用 5 列火车数据集构建模型好 并对测试的 col4 和 col5 进行预处理(估算)然后运行预测?我们觉得 col4 和 col5 很重要。请建议处理此问题的方法?

【问题讨论】:

    标签: python r machine-learning data-mining non-linear-regression


    【解决方案1】:

    如果你没有数据,你就没有数据。如果你的 col4 和 col5 有超过 40-50% 的缺失值,那么不要费心插补和使用它们。只需使用前 3 列制作模型即可。

    如果您仍然觉得需要它,那么使用随机森林模型或其他东西来预测那些缺失值,使用 3 个特征,也许还有目标。将您拥有的值用作训练数据,将您没有的值用作测试数据。但是你永远不会知道你的模型是在预测什么是明智的,还是只是在预测一些没有意义的东西。

    【讨论】:

      【解决方案2】:

      如果您需要构建具有 5 个特征的模型,则使用 col1、col2、col3 和您的目标变量训练一个预测 col 4 的模型。同样对 col5 执行相同的操作。您必须通过交叉验证来选择模型因为你不知道测试集的结果是什么。它会在一些小情况下有所帮助,希望有所帮助。

      【讨论】:

        【解决方案3】:

        在任何地方都使用相同的常量值肯定无济于事,反而会降低性能。

        根据经验,您的输入数据应该具有相同的特征,包括缺失数据率。

        因此,您很可能不得不忽略训练数据中的两个额外列。

        【讨论】:

          猜你喜欢
          • 2014-07-06
          • 1970-01-01
          • 2020-01-06
          • 2023-02-08
          • 2019-05-25
          • 1970-01-01
          • 2014-04-27
          • 2016-11-04
          • 2011-02-26
          相关资源
          最近更新 更多