我是randomForest
R套餐的新用户。我想为mtry =1,5,7
的迭代运行randomForest分类。
例如,我想运行mtry =1
100次,mtry=2
100次。输出应该显示每次运行的袋子错误(mtry = 100的结果为100,mtry的结果为100)。
我只能为1次运行编写代码,我不知道如何使用mtry
的不同值运行代码迭代。
rf <- randomForest(class_name ~ ., data=tr,ntree=1000,
importance=TRUE, proximity=TRUE, mtry=2)
答案 0 :(得分:4)
这是使用内置iris
数据框的快速而肮脏的方法。下面的代码给出了mtry
的每个值的最终OOB错误率。
mtry = 1:4
oob = data.frame()
# Loop over each value of mtry and store result in a data frame
for (i in mtry) {
rf1 <- randomForest(Species ~ ., data=iris, ntree=100, mtry=i)
result = data.frame(mtry=i,
OOB=rf1[["err.rate"]][nrow(rf1[["err.rate"]]),"OOB"])
oob = rbind(oob, result)
}
oob
mtry OOB
OOB 1 0.04666667
OOB1 2 0.04000000
OOB2 3 0.04000000
OOB3 4 0.04000000
要保留ntree
的每个值的所有mtry
OOB错误,只需更改此内容:
OOB=rf1[["err.rate"]][nrow(rf1[["err.rate"]]),"OOB"])
对此:
OOB=rf1[["err.rate"]][ ,"OOB"])