Wie randomForestschätzt das Paket Klassenwahrscheinlichkeiten, wenn ich verwende predict(model, data, type = "prob")?
Ich habe rangerzufällige Gesamtstrukturen mit dem probability = TArgument trainiert , um Wahrscheinlichkeiten vorherzusagen. rangerIn der Dokumentation heißt es:
Bauen Sie einen Wahrscheinlichkeitswald wie in Malley et al. (2012).
Ich habe einige Daten simuliert und beide Pakete ausprobiert und dabei sehr unterschiedliche Ergebnisse erzielt (siehe Code unten).
Ich weiß also, dass es eine andere Technik (dann Waldläufer) verwendet, um Wahrscheinlichkeiten abzuschätzen. Aber welcher?
simulate_data <- function(n){
X <- data.frame(matrix(runif(n*10), ncol = 10))
Y <- data.frame(Y = rbinom(n, size = 1, prob = apply(X, 1, sum) %>%
pnorm(mean = 5)
) %>%
as.factor()
)
dplyr::bind_cols(X, Y)
}
treino <- simulate_data(10000)
teste <- simulate_data(10000)
library(ranger)
modelo_ranger <- ranger(Y ~., data = treino,
num.trees = 100,
mtry = floor(sqrt(10)),
write.forest = T,
min.node.size = 100,
probability = T
)
modelo_randomForest <- randomForest(Y ~., data = treino,
ntree = 100,
mtry = floor(sqrt(10)),
nodesize = 100
)
pred_ranger <- predict(modelo_ranger, teste)$predictions[,1]
pred_randomForest <- predict(modelo_randomForest, teste, type = "prob")[,2]
prob_real <- apply(teste[,1:10], 1, sum) %>% pnorm(mean = 5)
data.frame(prob_real, pred_ranger, pred_randomForest) %>%
tidyr::gather(pacote, prob, -prob_real) %>%
ggplot(aes(x = prob, y = prob_real)) + geom_point(size = 0.1) + facet_wrap(~pacote)

prob_real?