我想在随机森林中使用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
...
可能吗?
答案 0 :(得分:4)
赞:
dg_s_val$CLASS_RF <- predValid
您正在将列表predValid
分配给dg_s_val
中的一列