CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Personnalisez l'objet trainControl pour utiliser twoClassSummary plutôt que defaultSummary.
  • 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
)
Modifier et exécuter le code