Heim  >  Artikel  >  Backend-Entwicklung  >  Verwirrungsmatrix-Tricks in Python

Verwirrungsmatrix-Tricks in Python

WBOY
WBOYOriginal
2023-06-11 10:43:542461Durchsuche

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.
  • Falsch Negativ (FN): Der Klassifizierungsalgorithmus sagt fälschlicherweise eine positive Klasse als negative Klasse voraus.
  • Falsch positiv (FP): Der Klassifizierungsalgorithmus sagt eine negative Klasse fälschlicherweise als positive Klasse voraus.
  • True Negative (TN): Der Klassifizierungsalgorithmus sagt eine negative Klasse korrekt als negative Klasse voraus.
  • 2. So berechnen Sie die Verwirrungsmatrix

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn