2017-04-20 1 views
0

J'ai développé un modèle de forêt aléatoire (en utilisant cforest du paquet 'party') sur un ensemble de données contenant environ 1000 observations de 7 variables. La réponse est binaire (disons résultat A et résultat B) et les 6 prédicteurs sont tous catégoriques. Mon problème est que je voudrais obtenir la probabilité de chacun des 1000 résultats comme dans un modèle de régression logistique. Dans ce dernier cas, nous pouvons utiliser predict (yourmodel, type = "response") pour obtenir la probabilité de chaque résultat, auquel cas le résultat A est favorisé lorsque p < 0.5 et le résultat B est favorisé lorsque p> = 0.5.Récupération des probabilités de résultats d'une forêt aléatoire

Il semble que lorsque j'applique prédire sur un objet forêt aléatoire, j'obtiens seulement le résultat prédit (c'est-à-dire A ou B) pour chaque observation. Y at-il une solution de contournement pour récupérer la probabilité de la réponse prédite?

Je vous remercie beaucoup pour votre aide!

C.B.

Répondre

2

De la documentation:

le type de réponse un, prob. ou des votes, en indiquant le type de sortie: les valeurs prédites, la matrice des probabilités de classe ou le nombre de matrices de votes. La classe est autorisée, mais automatiquement convertie en "réponse", pour des raisons de compatibilité ascendante.

Donc, essayez ceci:

probs <- predict(FIT, newdata, type="probs") 
+0

Nous vous remercions de votre aide. J'ai déjà essayé, mais je n'ai toujours besoin d'accéder qu'au second élément pour chaque élément de la liste. Essayer le suivant renvoie la probabilité du deuxième résultat dans la première rangée: predict.prob <- <- probs [[1]] [2] Cependant, je n'arrive pas à accéder à la probabilité pour chaque ligne et stocker dans un vecteur lors de l'utilisation d'une boucle for. – CBechet

-1

J'utilise le paquet h2o pour former mes forêt d'arbres décisionnels modèles. Quand vous faites la prédiction, la toute observation est retourné une valeur de probabilité (pour sa confiance par le modèle)

https://cran.r-project.org/web/packages/h2o/h2o.pdf

Do un coup d'oeil

+0

Merci pour le partage. Je ne souhaite pas utiliser un autre paquet et h2o me semble un peu plus compliqué. – CBechet

0

Maintenant je sais ho pour générer et extraire les valeurs de p- comme si regardant réponses prédites d'une régression logistique:

1) Générer les probabilités prédites des deux résultats

probs <- predict(FIT, newdata, type="prob") # thanks to thc 

2) Récupérer la probabilité du deuxième résultat pour chaque ligne, à savoir la probabilité du second niveau dans une régression logistique:

> predict.prob<-unlist(lapply(probs, '[[', 2)) 

J'espère que cela aidera les autres lecteurs intéressés par la façon dont nous pouvons extraire des probabilités de listes.

Je tiens à remercier thc et tylers pour leurs suggestions et leur aide!

C.B.