使用randomForest包在随机森林中分类输出

时间:2018-11-12 21:43:36

标签: r random-forest

我想在随机森林中使用predict()函数创建分类输出 对于下面的代码:

#Packages
library(randomForest)
library(dplyr)

#Data
data(iris)
Rep<-seq(1,length(iris[,1]))
all_iris<-cbind(Rep,iris)


#Tranning RF
dg_o_cal<-all_iris %>% sample_n(150*0.8)
iris.rf <- randomForest(Species ~ Sepal.Length + Sepal.Width + Petal.Length 
+ Petal.Width, data=dg_o_cal, importance=TRUE, proximity=TRUE)

# Predicting on Validation set 
dg_s_val<-anti_join(all_iris,dg_o_cal, by=c("Rep"))
predValid <- predict(iris.rf, dg_s_val, type = "class")
# Checking classification accuracy
mean(predValid == dg_s_val$Species)                    
table(predValid,dg_s_val$Species)
#

但是我喜欢dg_s_val对象中数据帧格式的输出,其中包含具有RF分类(CLASS_RF)的新列,并具有对验证集结果的预测,例如:

  Rep Sepal.Length Sepal.Width Petal.Length Petal.Width Species CLASS_RF
1   6          5.4         3.9          1.7         0.4  setosa setosa
2   9          4.4         2.9          1.4         0.2  setosa virginica
3  10          4.9         3.1          1.5         0.1  setosa virginica
4  11          5.4         3.7          1.5         0.2  setosa setosa
5  15          5.8         4.0          1.2         0.2  setosa setosa
6  20          5.1         3.8          1.5         0.3  setosa setosa
...

可能吗?

1 个答案:

答案 0 :(得分:4)

赞:

dg_s_val$CLASS_RF <- predValid

您正在将列表predValid分配给dg_s_val中的一列