获取新数据中缺少的训练数据中的错误"变量"在R

时间:2015-05-20 11:02:26

标签: r random-forest missing-data

当我在R中执行数据集的预测时,我收到以下错误:

Mode.rf <- randomForest(trX,trYc,ntree=1000,proximity=TRUE)
trts = rbind(trX,ts)
Plu.pred <- predict(Mode.rf,trts,proximity=TRUE)
  

predict.randomForest中的错误(Mode.rf,trts,proximity = TRUE):         newdata中缺少训练数据中的变量

以下详细描述了前几个样本的数据。

trts #In total, 1376 observations out of 95 variables

     V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21
1     0  0  0  0  0  0  0  0  1   0   0   0   0   0   0   0   1   0   0   0   0
2     0  0  0  1  0  0  0  0  0   0   0   0   0   0   0   0   0   1   1   1   0 

Mode.rf

# Call:
#  randomForest(x = trX, y = trYc, ntree = 1000, proximity = TRUE) 
#                Type of random forest: classification
#                      Number of trees: 1000
# No. of variables tried at each split: 9

#         OOB estimate of  error rate: 80.29%
# Confusion matrix:
#     1  2   3  4 class.error
# 1  74 85 129 99   0.8087855
# 2 106 84 105 58   0.7620397
# 3 125 90  51 76   0.8508772
# 4 114 45  72 62   0.7883959

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

根据您分享的内容,您似乎是:

1:构建一个提供自变量(trX)和1个因变量(trYc)的模型

这对我来说似乎很好

2:将训练集中的自变量划分为其他内容

如果ts是一组独立变量,我将它们绑定到旧数据是没有意义的。最好自己测试新数据集。 如果ts是一个新的因变量,你可能会使用cbind而不是rbind(并错误地预测非匹配旧数据的新结果)。

如果目标是在新数据集中使用您的模型,请确保为新数据集提供与第一个完全相同的列名。

您还可以在1个数据帧中将依赖变量和自变量放在一起,并使用randomForst中的公式选项(Y~。,data = dataname等)

“”。表示数据帧中的每个其他变量。