Как написано, ваш цикл не будет работать, вместо этого вы будете собирать случайные леса, каждый из которых попробовал 10 деревьев. Попробуйте вместо этого
accuracy <- matrix(rep( 0, times = 1000), ncol = 10)
for(i in seq(1,100))
{
ntried <- i
for (j in seq(1,10))
{
mtried <- j
rf_mod1[j] <- randomForest(target~., data = heartdb, ntree =
ntried , mtry= mtried , importance= TRUE )
t<-predict(rf_mod1,data = heartdb)
p<-table(actual =heartdb$target, prediction = t )
accuracy[i,j]<-sum(diag(p))/sum(p)
}
}
Теперь каждый ряд точности содержит 10 погрешностей. По строке ищите максимум:
apply(accuracy, 1, max)
Вы можете даже построить максимум на уровне ntried
:
plot(seq(1,100), apply(accuracy, 1, max))
Наконец, вы можете вызвать следующее, чтобы получить строку (уровень ntried), которая содержит максимальную точность для всех 1000 лесов:
which(apply(accuracy, 1, max) == max(apply(accuracy, 1, max)))