Avec la popularité de l'apprentissage automatique et de l'exploration de données, de plus en plus de data scientists et de chercheurs commencent à utiliser Python, un langage de programmation de haut niveau, pour traiter et analyser des données, et l'intuitivité et la facilité d'utilisation de Python le rendent populaire. in Il est largement utilisé dans les domaines de l’apprentissage profond et de l’intelligence artificielle. Cependant, de nombreux débutants rencontrent certaines difficultés lors de l'utilisation de Python, dont la difficulté de la matrice de confusion. Dans cet article, nous présenterons l'utilisation des matrices de confusion en Python et quelques techniques utiles pour traiter les matrices de confusion.
1. Qu'est-ce qu'une matrice de confusion
En deep learning et en data mining, la matrice de confusion est un tableau rectangulaire utilisé pour comparer la différence entre les résultats prédits et les résultats réels. Cette matrice montre les performances de l'algorithme de classification, y compris des indicateurs importants tels que l'exactitude, le taux d'erreur, la précision et le rappel de l'algorithme de classification. La matrice de confusion visualise généralement les performances du classificateur et fournit la référence principale pour les résultats de prédiction pour l'amélioration et l'optimisation du classificateur.
Normalement, la matrice de confusion se compose de quatre paramètres :
2. Comment calculer la matrice de confusion
La bibliothèque scikit-learn en Python fournit une fonction pratique pour calculer la matrice de confusion. Cette fonction s'appelle confusion_matrix() et peut être utilisée comme entrée entre le classificateur et les résultats réels de l'ensemble de tests, et renvoie les valeurs des paramètres de la matrice de confusion. La syntaxe de cette fonction est la suivante :
from sklearn.metrics import confusion_matrix confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
Parmi eux, y_true représente le résultat correct du classificateur, y_pred représente le résultat de prédiction du classificateur et labels représente le nom de l'étiquette de classe (si non fourni, la valeur par défaut est celle de y_true et la valeur extraite de y_pred), sample_weight représente le poids de chaque échantillon (si cela n'est pas nécessaire, ne définissez pas ce paramètre).
Par exemple, supposons que nous devions calculer la matrice de confusion des données suivantes :
y_true = [1, 0, 1, 2, 0, 1] y_pred = [1, 0, 2, 1, 0, 2]
Afin de calculer la matrice de confusion, vous pouvez utiliser le code suivant : #🎜 🎜#
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_true, y_pred) print(cm)
array([[2, 0, 0], [0, 1, 2], [0, 1, 0]])
import itertools import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import confusion_matrix def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ if normalize: cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis] print("Normalized confusion matrix") else: print('Confusion matrix, without normalization') print(cm) plt.imshow(cm, interpolation='nearest', cmap=cmap) plt.title(title) plt.colorbar() tick_marks = np.arange(len(classes)) plt.xticks(tick_marks, classes, rotation=45) plt.yticks(tick_marks, classes) fmt = '.2f' if normalize else 'd' thresh = cm.max() / 2. for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])): plt.text(j, i, format(cm[i, j], fmt), horizontalalignment="center", color="white" if cm[i, j] > thresh else "black") plt.tight_layout() plt.ylabel('True label') plt.xlabel('Predicted label') # Compute confusion matrix cnf_matrix = confusion_matrix(y_test, y_pred) np.set_printoptions(precision=2) # Plot non-normalized confusion matrix plt.figure() plot_confusion_matrix(cnf_matrix, classes=class_names, title='Confusion matrix, without normalization') # Plot normalized confusion matrix plt.figure() plot_confusion_matrix(cnf_matrix, classes=class_names, normalize=True, title='Normalized confusion matrix') plt.show()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!