如何处理测试数据中的缺失列?

时间:2017-10-28 10:14:47

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

我的训练数据如下

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列作为traini数据集的特征列。仅使用三列列车数据集构建模型并仅使用3列测试数据进行预测是否合适?或者用5列火车数据集建立模型是好的  并预处理(估算)测试的col4和col5然后运行预测?我们感觉像col4和col5是重要的。请建议处理此问题的方法?

3 个答案:

答案 0 :(得分:0)

如果您没有数据,则表示您没有数据。如果col4和col5的缺失值超过40-50%,则不要打扰使用它们。只需使用前3列制作模型。

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在任何地方输入相同的常数值肯定无济于事,但会降低性能。

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

所以最有可能的是,你必须忽略训练数据中的两个额外列。