Quelle est la qualité de votre modèle ?

Apprentissage supervisé avec scikit-learn

George Boorman

Core Curriculum Manager, DataCamp

Métriques de classification

  • Mesurer avec exactitude la performance du modèle :

    • Fraction d’échantillons correctement classés

    • Une métrique pas toujours utile

Apprentissage supervisé avec scikit-learn

Déséquilibre des classes

  • Classification pour prédire les transactions bancaires frauduleuses

    • 99 % des transactions sont légitimes ; 1 % sont frauduleuses
  • Il est possible de construire un classificateur qui prédit qu’NONE transaction n’est frauduleuse

    • Précis à 99 %

    • Mais très mauvais pour ce qui est de prédire les transactions frauduleuses

    • N’atteint pas son objectif initial

  • Déséquilibre des classes : Fréquence inégale des classes

  • Nécessité d’une autre méthode d’évaluation des performances

Apprentissage supervisé avec scikit-learn

Matrice de confusion pour l’évaluation des performances de la classification

  • Matrice de confusion

confusion_matrix.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

predicted_labels.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

actual_labels.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

confusion_matrix.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

true_positive.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

true_negative.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

false_negative.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

 

false_positive.png

Apprentissage supervisé avec scikit-learn

Évaluer les performances de la classification

confusion_matrix.png

  • Exactitude :

ch3_1_v3.030.png

Apprentissage supervisé avec scikit-learn

Précision

precision.png

  • Précision

precision_formula.png

  • Précision élevée = taux de faux positifs plus faible
  • Précision élevée : peu de transactions légitimes sont prédites comme étant frauduleuses
Apprentissage supervisé avec scikit-learn

Rappel

recall.png

  • Rappel

recall_formula.png

  • Rappel élevé = taux de faux négatifs plus faible
  • Rappel élevé : prévision correcte de la plupart des transactions frauduleuses
Apprentissage supervisé avec scikit-learn

Score F1

  • Score F1 : $2 * \frac{precision \ * \ recall}{precision \ + \ recall}$
Apprentissage supervisé avec scikit-learn

Matrice de confusion dans scikit-learn

from sklearn.metrics import classification_report, confusion_matrix

knn = KNeighborsClassifier(n_neighbors=7)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=42)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
Apprentissage supervisé avec scikit-learn

Matrice de confusion dans scikit-learn

print(confusion_matrix(y_test, y_pred))
[[1106   11]
 [ 183   34]]
Apprentissage supervisé avec scikit-learn

Rapport de classification dans scikit-learn

print(classification_report(y_test, y_pred))
              precision    recall  f1-score   support

           0       0.86      0.99      0.92      1117
           1       0.76      0.16      0.26       217

    accuracy                           0.85      1334
   macro avg       0.81      0.57      0.59      1334
weighted avg       0.84      0.85      0.81      1334
Apprentissage supervisé avec scikit-learn

Passons à la pratique !

Apprentissage supervisé avec scikit-learn

Preparing Video For Download...