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