Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Matrice de Confusion | Comparaison des Modèles
Classification avec Python

bookMatrice de Confusion

Lors de la réalisation d'une prédiction pour un problème de classification binaire, il n'existe que quatre issues possibles :

Dans l'image ci-dessus, les valeurs réelles (étiquettes vraies) sont ordonnées de haut en bas par ordre décroissant, tandis que les valeurs prédites sont ordonnées de gauche à droite par ordre croissant. Il s'agit de la disposition par défaut utilisée par scikit-learn lors de l'affichage des matrices de confusion.

Note
Remarque

Différentes bibliothèques ou visualisations peuvent utiliser une disposition différente - par exemple, placer les valeurs réelles sur l'axe des x et les valeurs prédites sur l'axe des y. Cependant, seule la disposition change ; les valeurs de la matrice restent identiques.

Ces résultats sont appelés vrai positif (VP), vrai négatif (VN), faux positif (FP) et faux négatif (FN). "vrai" ou "faux" indique si la prédiction est correcte, tandis que "positif" ou "négatif" fait référence à la classe prédite, 1 ou 0.

Cela signifie qu'il existe deux types d'erreurs possibles : les faux positifs et les faux négatifs. Une prédiction fausse positive est également appelée erreur de type 1, tandis qu'une prédiction fausse négative est appelée erreur de type 2.

Matrice de confusion

La première façon d'évaluer la performance du modèle consiste à organiser les prédictions dans une matrice de confusion comme ceci :

Vous pouvez construire une matrice de confusion en Python à l'aide de la fonction confusion_matrix() de sklearn :

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Pour une meilleure visualisation, vous pouvez utiliser la fonction heatmap() de seaborn :

sns.heatmap(conf_matrix)

Voici un exemple de calcul de la matrice de confusion pour une prédiction Random Forest sur le jeu de données Titanic :

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Il est également possible de représenter les pourcentages au lieu du nombre d'occurrences en utilisant le paramètre normalize :

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Quel est le but d'une matrice de confusion ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 4.17

bookMatrice de Confusion

Glissez pour afficher le menu

Lors de la réalisation d'une prédiction pour un problème de classification binaire, il n'existe que quatre issues possibles :

Dans l'image ci-dessus, les valeurs réelles (étiquettes vraies) sont ordonnées de haut en bas par ordre décroissant, tandis que les valeurs prédites sont ordonnées de gauche à droite par ordre croissant. Il s'agit de la disposition par défaut utilisée par scikit-learn lors de l'affichage des matrices de confusion.

Note
Remarque

Différentes bibliothèques ou visualisations peuvent utiliser une disposition différente - par exemple, placer les valeurs réelles sur l'axe des x et les valeurs prédites sur l'axe des y. Cependant, seule la disposition change ; les valeurs de la matrice restent identiques.

Ces résultats sont appelés vrai positif (VP), vrai négatif (VN), faux positif (FP) et faux négatif (FN). "vrai" ou "faux" indique si la prédiction est correcte, tandis que "positif" ou "négatif" fait référence à la classe prédite, 1 ou 0.

Cela signifie qu'il existe deux types d'erreurs possibles : les faux positifs et les faux négatifs. Une prédiction fausse positive est également appelée erreur de type 1, tandis qu'une prédiction fausse négative est appelée erreur de type 2.

Matrice de confusion

La première façon d'évaluer la performance du modèle consiste à organiser les prédictions dans une matrice de confusion comme ceci :

Vous pouvez construire une matrice de confusion en Python à l'aide de la fonction confusion_matrix() de sklearn :

from sklearn.metrics import confusion_matrix

conf_matrix = confusion_matrix(y_true, y_pred)

Pour une meilleure visualisation, vous pouvez utiliser la fonction heatmap() de seaborn :

sns.heatmap(conf_matrix)

Voici un exemple de calcul de la matrice de confusion pour une prédiction Random Forest sur le jeu de données Titanic :

12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred) sns.heatmap(conf_matrix, annot=True);
copy

Il est également possible de représenter les pourcentages au lieu du nombre d'occurrences en utilisant le paramètre normalize :

conf_matrix = confusion_matrix(y_true, y_pred, normalize='all')
12345678910111213141516
import pandas as pd import seaborn as sns from sklearn.metrics import confusion_matrix from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split # Read the data and assign the variables df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b71ff7ac-3932-41d2-a4d8-060e24b00129/titanic.csv') X, y = df.drop('Survived', axis=1), df['Survived'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) # Build and train a Random Forest and predict target for a test set random_forest = RandomForestClassifier().fit(X_train, y_train) y_pred = random_forest.predict(X_test) # Build a confusion matrix conf_matrix = confusion_matrix(y_test, y_pred, normalize='all') sns.heatmap(conf_matrix, annot=True);
copy
question mark

Quel est le but d'une matrice de confusion ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 1
some-alt