Exercices Machine Learning Matrice de confusion
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Matrice de confusion

L'accuracy te dit 'tu as 90% de bonnes reponses', mais elle ne te dit pas OU tu te trompes. La matrice de confusion, si. Elle te montre exactement combien de positifs tu as rates, et combien de faux positifs tu as generes. C'est indispensable en medecine (rater un cancer vs diagnostiquer un cancer qui n'existe pas) ou en fraude (laisser passer une fraude vs bloquer un client legitime).

Predit 0 Predit 1
Vrai Negatif (TN) Faux Positif (FP) <- Vraie classe 0
Faux Negatif (FN) Vrai Positif (TP) <- Vraie classe 1

TN = correctement predit 0, TP = correctement predit 1
FP = predit 1 alors que c'est 0 (fausse alarme)
FN = predit 0 alors que c'est 1 (rate)

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_vrai, y_predit)
# cm est un array numpy 2D
tn, fp, fn, tp = cm.ravel() # pour extraire les 4 valeurs

Écris une fonction analyser_confusion(y_vrai, y_predit) qui renvoie un dictionnaire avec :
'matrice' : la matrice de confusion (array numpy)
'vrai_negatif' : TN
'faux_positif' : FP
'faux_negatif' : FN
'vrai_positif' : TP

Tests (4/4)

Predictions parfaites
result = analyser_confusion([0, 0, 1, 1], [0, 0, 1, 1])
assert result['vrai_positif'] == 2
assert result['vrai_negatif'] == 2
assert result['faux_positif'] == 0
assert result['faux_negatif'] == 0
Tout faux
result = analyser_confusion([0, 0, 1, 1], [1, 1, 0, 0])
assert result['faux_positif'] == 2
assert result['faux_negatif'] == 2
Un faux positif
result = analyser_confusion([0, 0, 1, 1], [0, 1, 1, 1])
assert result['faux_positif'] == 1
assert result['vrai_positif'] == 2
Forme de la matrice
result = analyser_confusion([0, 1, 0, 1], [0, 1, 0, 1])
assert result['matrice'].shape == (2, 2)

Indices (3 disponibles)

solution.py