Kullandığımda randomForestpaket sınıf olasılıklarını nasıl tahmin ediyor predict(model, data, type = "prob")?
Ben kullanıyordum rangerkullanarak rastgele ormanlar yetiştirilmesi probability = Tolasılıklarını tahmin etmek argüman. rangerbelgelerde şöyle diyor:
Malley ve ark. (2012).
Bazı verileri simüle ettim ve her iki paketi de denedim ve çok farklı sonuçlar elde ettim (aşağıdaki koda bakın)
Bu yüzden olasılıkları tahmin etmek için farklı bir teknik (sonra ranger) kullandığını biliyorum. Fakat hangisi?
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?