randomForest
আমি যখন ব্যবহার করি তখন প্যাকেজটি ক্লাসের সম্ভাবনাগুলি কীভাবে অনুমান করে predict(model, data, type = "prob")
?
সম্ভাব্যতার পূর্বাভাস ranger
দেওয়ার পক্ষে probability = T
যুক্তি ব্যবহার করে আমি এলোমেলো বন প্রশিক্ষণের জন্য ব্যবহার করছিলাম । ranger
ডকুমেন্টেশনে বলেছেন যে এটি:
ম্যালি এট আল-এর মতো একটি সম্ভাব্য বন বর্ধন করুন। (2012)।
আমি কিছু ডেটা সিমুলেটেড এবং উভয় প্যাকেজ চেষ্টা করেছিলাম এবং খুব আলাদা ফলাফল পেয়েছি (নীচের কোড দেখুন)
সুতরাং আমি জানি যে এটি সম্ভাবনাগুলি অনুমান করার জন্য একটি আলাদা কৌশল (তারপরে রেঞ্জার) ব্যবহার করে। তবে কোনটি?
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
?