Wie randomForest
schätzt das Paket Klassenwahrscheinlichkeiten, wenn ich verwende predict(model, data, type = "prob")
?
Ich habe ranger
zufällige Gesamtstrukturen mit dem probability = T
Argument trainiert , um Wahrscheinlichkeiten vorherzusagen. ranger
In 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
?