Personnaliser trainControl
Comme vous l’avez vu dans la vidéo, l’aire sous la courbe ROC est un indicateur très utile qui résume en un seul nombre la capacité d’un modèle à distinguer la classe positive de la classe négative (par exemple, mines vs rochers). Une AUC de 0,5 n’est pas meilleure qu’un tirage aléatoire, une AUC de 1,0 correspond à un modèle parfaitement prédictif, et une AUC de 0,0 à un modèle parfaitement anti-prédictif (ce qui est très rare).
C’est souvent un indicateur bien plus pertinent que de classer les modèles uniquement selon leur exactitude à un seuil fixé, car différents modèles peuvent nécessiter des étapes de calibration différentes (en examinant la 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 (au lieu de l’exactitude) et régler les hyperparamètres de vos modèles. La fonction pratique twoClassSummary() vous permet de le faire facilement.
Lorsque vous utilisez twoClassSummary(), veillez toujours à inclure l’argument classProbs = TRUE, sinon votre modèle générera une erreur ! (Vous ne pouvez pas calculer l’AUC avec de simples prédictions de classes. Il vous faut aussi les probabilités de classe.)
Cet exercice fait partie du cours
Machine Learning avec caret en R
Instructions
- Personnalisez l’objet
trainControlpour utilisertwoClassSummaryplutôt quedefaultSummary. - Utilisez une validation croisée à 10 volets.
- Assurez-vous d’indiquer à
trainControl()de renvoyer les probabilités de classe.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create trainControl object: myControl
myControl <- trainControl(
method = "cv",
number = ___,
summaryFunction = defaultSummary,
classProbs = ___, # IMPORTANT!
verboseIter = TRUE
)