2015-04-27 1 views
3

J'ai utilisé la bibliothèque caret pour calculer les probabilités et les prédictions de classe pour un problème de classification binaire, en utilisant une validation croisée 10 fois et 5 fois la répétition.Comment calculer la surface sous la courbe ROC à partir des probabilités de classe prédites, dans R à l'aide du paquet pROC ou ROCR?

Maintenant, j'ai valeurs TRUE (valeurs observées pour chaque point de données), PRÉVU (par un algorithme) valeurs, Classe 0 probabilités et probabilités de classe 1 qui ont été utilisées par un algorithme pour prédire la classe étiquette.

Maintenant, comment puis-je créer un objet roc en utilisant la bibliothèque ROCR ou pROC puis calculer la valeur auc?

Supposons que toutes ces valeurs sont stockées dans la trame predictions. par exemple. predictions$pred et predictions$obs sont les valeurs prédites et vraies respectivement, et ainsi de suite ...

Répondre

4

Puisque vous n'avez pas fourni un exemple reproductible, je suppose que vous avez un problème de classification binaire et vous prédire sur Class qui sont soit Good ou Bad.

predictions <- predict(object=model, test[,predictors], type='prob') 

Vous pouvez faire:

> pROC::roc(ifelse(test[,"Class"] == "Good", 1, 0), predictions[[2]])$auc 
# Area under the curve: 0.8905