Mit der Popularität von maschinellem Lernen und Data Mining beginnen immer mehr Datenwissenschaftler und Forscher, Python, eine Programmiersprache auf hoher Ebene, zum Verarbeiten und Analysieren von Daten zu verwenden, und Pythons Intuitivität und Benutzerfreundlichkeit machen es beim Deep Learning beliebt und es wird häufig im Bereich der künstlichen Intelligenz eingesetzt. Viele Anfänger stoßen jedoch bei der Verwendung von Python auf einige Schwierigkeiten, darunter die Schwierigkeit der Verwirrungsmatrix. In diesem Artikel stellen wir die Verwendung von Verwirrungsmatrizen in Python und einige nützliche Techniken im Umgang mit Verwirrungsmatrizen vor.
1. Was ist eine Verwirrungsmatrix? Beim Deep Learning und Data Mining ist eine Verwirrungsmatrix eine rechteckige Tabelle, die zum Vergleich der Unterschiede zwischen vorhergesagten und tatsächlichen Ergebnissen verwendet wird. Diese Matrix zeigt die Leistung des Klassifizierungsalgorithmus, einschließlich wichtiger Indikatoren wie Genauigkeit, Fehlerrate, Präzision und Rückruf des Klassifizierungsalgorithmus. Die Verwirrungsmatrix visualisiert normalerweise die Leistung des Klassifikators und liefert die Hauptreferenz für die Vorhersageergebnisse zur Verbesserung und Optimierung des Klassifikators.
Normalerweise besteht die Verwirrungsmatrix aus vier Parametern:
True Positive (TP): Der Klassifizierungsalgorithmus sagt die positive Klasse korrekt als positive Klasse voraus.Die scikit-learn-Bibliothek in Python bietet eine praktische Funktion zur Berechnung der Verwirrungsmatrix. Diese Funktion heißt confusion_matrix() und kann als Eingabe zwischen dem Klassifikator und den tatsächlichen Ergebnissen des Testsatzes verwendet werden und gibt die Parameterwerte der Verwirrungsmatrix zurück. Die Syntax dieser Funktion lautet wie folgt:
from sklearn.metrics import confusion_matrix confusion_matrix(y_true, y_pred, labels=None, sample_weight=None)
wobei y_true das korrekte Ergebnis des Klassifikators darstellt, y_pred das Vorhersageergebnis des Klassifikators darstellt und labels den Namen der Klassenbezeichnung darstellt (falls nicht angegeben, wird standardmäßig verwendet). Der aus y_true und y_pred extrahierte Wert stellt das Gewicht jeder Stichprobe dar (falls nicht erforderlich, legen Sie diesen Parameter nicht fest).
Angenommen, wir müssen beispielsweise die Verwirrungsmatrix der folgenden Daten berechnen:
y_true = [1, 0, 1, 2, 0, 1] y_pred = [1, 0, 2, 1, 0, 2]
Um die Verwirrungsmatrix zu berechnen, können Sie den folgenden Code verwenden:
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_true, y_pred) print(cm)
Das Ausgabeergebnis lautet:
array([[2, 0, 0], [0, 1, 2], [0, 1, 0]])
Das heißt, die Verwirrung Die Matrix zeigt, dass „1“ korrekt als „1“ klassifiziert wurde. Es gibt 2 Fälle von „1“, 1 Fall von „0“, der korrekt als „0“ klassifiziert wurde, 0 Fälle von „2“, die korrekt als „2“ klassifiziert wurden, und 0 Fälle von „1“ wurde fälschlicherweise als „2“ klassifiziert „ wurde zweimal fälschlicherweise als „1“ klassifiziert, „2“ wurde einmal fälschlicherweise als „1“ klassifiziert und „0“ wurde einmal fälschlicherweise als „2“ klassifiziert.
3. Zeigen Sie die Verwirrungsmatrix an
Es gibt viele Situationen, in denen wir eine bessere Visualisierung der Verwirrungsmatrix benötigen. Die Matplotlib-Bibliothek in Python kann Verwirrungsmatrizen visualisieren. Das Folgende ist Python-Code, der die Matplotlib-Bibliothek und sklearn.metrics verwendet, um die Verwirrungsmatrix zu visualisieren.
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()
Im obigen Code definieren wir eine benutzerdefinierte Funktion namens plot_confusion_matrix(), die die Parameter der Verwirrungsmatrix als Parameter und die Textzeichenfolge des Kategorienamens akzeptiert und die Verwirrungsmatrix als Farbbild ausgibt, wo die Verwirrung Matrix Die Farbe jeder Zelle gibt die Größe ihres Werts an. Als nächstes müssen wir die Verwirrungsmatrix mithilfe der jeweiligen wahren und vorhergesagten Kategorien berechnen und die Verwirrungsmatrix mithilfe der oben definierten Funktion plot_confusion_matrix() darstellen.
4. Zusammenfassung
Die Python-Sprache bietet eine große Anzahl von Visualisierungs- und Datenanalysebibliotheken, die es Datenwissenschaftlern und Forschern ermöglichen können, Deep Learning und Datenanalysen mit künstlicher Intelligenz schneller durchzuführen. In diesem Artikel stellen wir die Verwirrungsmatrix und ihre Anwendungen vor, außerdem zeigen wir, wie man die Verwirrungsmatrix in Python berechnet und wie man die Matplotlib-Bibliothek verwendet, um Grafiken der Verwirrungsmatrix zu generieren. Die Verwirrungsmatrix-Technologie hat wichtige Anwendungen in den Bereichen Deep Learning und künstliche Intelligenz. Daher ist es sehr wichtig, die Verwirrungsmatrix-Technologie zu erlernen.
Das obige ist der detaillierte Inhalt vonVerwirrungsmatrix-Tricks in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!