使用 randomForest 包在随机森林中的分类输出
Posted
技术标签:
【中文标题】使用 randomForest 包在随机森林中的分类输出【英文标题】:Classification output in random forest with randomForest package 【发布时间】:2019-04-15 16:02:01 【问题描述】:我想在随机森林中使用 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】:像这样:
dg_s_val$CLASS_RF <- predValid
您正在将列表 predValid
分配给 dg_s_val
中的列
【讨论】:
以上是关于使用 randomForest 包在随机森林中的分类输出的主要内容,如果未能解决你的问题,请参考以下文章