运行 具有许多 mtry 值的随机森林
Run randomForest with many mtry values
我是 randomForest
R 包的新用户。我想 运行 随机森林分类 mtry =1,5,7
.
的迭代
比如我想运行mtry =1
100次和mtry=2
100次。输出应显示每个 运行 的袋外错误(mtry =1 的 100 个结果和 mtry =2 的 100 个结果)。
我只会写 1 运行 的代码,我不知道如何 运行 迭代具有不同值的代码 mtry
。
rf <- randomForest(class_name ~ ., data=tr,ntree=1000,
importance=TRUE, proximity=TRUE, mtry=2)
这是一种使用内置 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
要保留 mtry
的每个值的所有 ntree
OOB 错误,只需更改此:
OOB=rf1[["err.rate"]][nrow(rf1[["err.rate"]]),"OOB"])
为此:
OOB=rf1[["err.rate"]][ ,"OOB"])
我是 randomForest
R 包的新用户。我想 运行 随机森林分类 mtry =1,5,7
.
比如我想运行mtry =1
100次和mtry=2
100次。输出应显示每个 运行 的袋外错误(mtry =1 的 100 个结果和 mtry =2 的 100 个结果)。
我只会写 1 运行 的代码,我不知道如何 运行 迭代具有不同值的代码 mtry
。
rf <- randomForest(class_name ~ ., data=tr,ntree=1000,
importance=TRUE, proximity=TRUE, mtry=2)
这是一种使用内置 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
要保留 mtry
的每个值的所有 ntree
OOB 错误,只需更改此:
OOB=rf1[["err.rate"]][nrow(rf1[["err.rate"]]),"OOB"])
为此:
OOB=rf1[["err.rate"]][ ,"OOB"])