Personnaliser trainControl
Comme vous l'avez vu dans la vidéo, la surface sous la courbe ROC (AUC) est un indicateur très utile, en un seul nombre, de la capacité d'un modèle à distinguer la classe positive de la classe négative (p. ex., mines vs roches). Une AUC de 0,5 ne fait pas mieux qu'un choix au hasard, une AUC de 1,0 correspond à un modèle parfaitement prédictif, et une AUC de 0,0 est parfaitement antiprédictive (ce qui est très rare).
C'est souvent une mesure bien plus utile que de simplement classer les modèles selon leur exactitude à un seuil donné, car différents modèles peuvent exiger des étapes d'étalonnage différentes (en examinant une matrice de confusion à chaque étape) pour trouver le seuil de classification optimal pour ce modèle.
Vous pouvez utiliser la fonction trainControl() de caret pour utiliser l'AUC (plutôt que l'exactitude) afin d'ajuster les paramètres de vos modèles. La fonction pratique twoClassSummary() vous permet de le faire facilement.
Lorsque vous utilisez twoClassSummary(), assurez-vous d'inclure l'argument classProbs = TRUE, sinon votre modèle générera une erreur! (On ne peut pas calculer l'AUC avec seulement des prédictions de classes. Il faut aussi avoir les probabilités de classes.)
Cette activité fait partie du cours
Machine Learning avec caret en R
Instructions de l’exercice
- Personnalisez l'objet
trainControlpour utilisertwoClassSummaryplutôt quedefaultSummary. - Utilisez une validation croisée à 10 volets.
- Assurez-vous d'indiquer à
trainControl()de retourner les probabilités de classes.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)