【问题标题】:How to predict on the Test data using random forest when "prediction" column is missing in the data set given?当给定的数据集中缺少“预测”列时,如何使用随机森林预测测试数据?
【发布时间】:2020-02-13 07:08:25
【问题描述】:

当“预测”列 (is_promoted) 在给定的 TEST 数据集中缺少时,如何使用随机森林对测试数据进行预测?

这里我给出了两个数据集:Train 和 Test,在 Test 数据集中我要预测员工是否会被提升。

Train 数据集is_promoted 列,已用于构建模型。 并且我已经使用Test$is_promoted=NA 在我的测试数据集中添加了 is_promoted 列,以便我在数据准备过程中具有相同的维度。

但是当我使用随机森林来预测最终值时,它将那些“NA”显示为缺失值错误。

set.seed(123)
rf_m3=randomForest(is_promoted~.,data = FinalTest,ntree=150, nodesize=50, mtry=5)
rf_test_pred=predict(rf_m3, FinalTest, type="class")

错误代码:

Error in na.fail.default(list(is_promoted = c(NA_integer_, NA_integer_,  : 
  missing values in object

现在我不能删除“is_promoted”作为我的因变量。

因此请提出一种处理此问题的方法以及所需的代码修改。

PS:新手。第一次尝试随机森林,所以如果可能请尽可能解释。

【问题讨论】:

  • 随机森林是一种监督机器学习方法,它围绕一系列预测变量和已知响应构建模型。如果你真的不知道受试者是否获得晋升的信息,那么你就不能真正使用随机森林。
  • 测试集的关键在于你没有想要预测的变量。所以is_promoted 丢失是完全正常的。使用predict时不应该创建这样的列。

标签: r random-forest


【解决方案1】:

我认为您的因变量包含 NA,这就是错误出现的原因。您可以通过summary(FinalTest)查看。如果 is_promoted 包含 NA 值(我认为存在),请使用

rf_m3 = randomForest(is_promoted~., data = FinalTest, ntree=150, nodesize=50, mtry=5, na.action=na.omit)

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2015-12-22
    • 2014-08-07
    • 2017-01-26
    • 2020-10-20
    • 2021-03-21
    • 2019-05-04
    • 2017-10-21
    相关资源
    最近更新 更多