CommencerCommencer gratuitement

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

Afficher le cours

Instructions

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