在随机森林中 - 如何将预测结果附加到数据框

时间:2014-05-11 08:39:33

标签: r prediction random-forest

我想使用随机森林进行分类,但有两件事我无法找到解决方案:第一个是如何将预测结果附加到数据框。第二,除了关于预测质量的列联表之外,我怎样才能获得更多的见解(图表,统计等)? 这是我的数据框示例:

dat <- read.table(text = " TargetVar  Var1    Var2       Var3
 0        0        0         7
 0        0        1         1
 0        1        0         3
 0        1        1         7
 1        0        0         5
 1        0        1         1
 1        1        0         0
 1        1        1         6
 0        0        0         8
 0        0        1         5
 1        1        1         4
 0        0        1         2
 1        0        0         9
 1        1        1         2  ", header = TRUE)

dat$dat$TargetVar <- as.factor(dat$TargetVar) #changed my target variable into a factor
rf <- randomForest(TargetVar~Var1 + Var2+ Var3 ,data=dat,ntree=10,importance=TRUE) #produced the model
table(predict(rf),dat$TargetVar) # got the contingency table

感谢。

1 个答案:

答案 0 :(得分:3)

我只能回答你问题的第一部分。

  

如何将预测结果附加到数据框

为此,您可以使用 cbind 功能:

考虑预测结果:

predict(rf)

将它们变成数据框

predResults <- data.frame(predict(rf))

更新原始数据框(dat)以包含以下结果:

dat <- cbind(dat,predResults)

> dat
      TargetVar Var1 Var2 Var3 predict.rf.
  1       0       0    0    7  0.40000000
  2       0       0    1    1  0.69642857
  3       0       1    0    3  1.00000000
  4       0       1    1    7  0.50000000
  5       1       0    0    5  0.30000000
  6       1       0    1    1  0.22380952
  7       1       1    0    0  0.47817460
  8       1       1    1    6  0.52916667
  9       0       0    0    8  0.44444444
  10      0       0    1    5  0.07142857
  11      1       1    1    4  0.66666667
  12      0       0    1    2  1.00000000
  13      1       0    0    9  0.15666667
  14      1       1    1    2  0.51785714