confusion_matrix#

sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)[Quelle]#

Berechnet die Konfusionsmatrix zur Bewertung der Genauigkeit einer Klassifikation.

Per Definition ist eine Konfusionsmatrix \(C\) so beschaffen, dass \(C_{i, j}\) gleich der Anzahl der Beobachtungen ist, die als zur Gruppe \(i\) gehörend bekannt sind und als zur Gruppe \(j\) vorhergesagt wurden.

Somit ist bei der binären Klassifizierung die Anzahl der wahren Negativen \(C_{0,0}\), der falschen Negativen \(C_{1,0}\), der wahren Positiven \(C_{1,1}\) und der falschen Positiven \(C_{0,1}\).

Mehr dazu im Benutzerhandbuch.

Parameter:
y_truearray-ähnlich mit Form (n_samples,)

Wahrheitsgetreue (korrekte) Zielwerte.

y_predarray-ähnlich mit Form (n_samples,)

Geschätzte Zielwerte, wie sie von einem Klassifikator zurückgegeben werden.

labelsarray-like der Form (n_classes,), Standard=None

Liste der Labels zum Indizieren der Matrix. Dies kann verwendet werden, um Labels neu anzuordnen oder eine Teilmenge auszuwählen. Wenn None angegeben wird, werden diejenigen verwendet, die mindestens einmal in y_true oder y_pred vorkommen, in sortierter Reihenfolge.

sample_weightarray-like der Form (n_samples,), Standardwert=None

Stichprobengewichte.

Hinzugefügt in Version 0.18.

normalize{‘true’, ‘pred’, ‘all’}, Standardwert=None

Normalisiert die Konfusionsmatrix über die wahren (Zeilen), vorhergesagten (Spalten) Bedingungen oder die gesamte Population. Wenn None, wird die Konfusionsmatrix nicht normalisiert.

Gibt zurück:
Cndarray der Form (n_classes, n_classes)

Konfusionsmatrix, deren Eintrag in der i-ten Zeile und j-ten Spalte die Anzahl der Stichproben angibt, deren wahres Label die i-te Klasse ist und deren vorhergesagtes Label die j-te Klasse ist.

Siehe auch

ConfusionMatrixDisplay.from_estimator

Konfusionsmatrix basierend auf einem Schätzer, den Daten und dem Label plotten.

ConfusionMatrixDisplay.from_predictions

Konfusionsmatrix basierend auf den wahren und vorhergesagten Labels plotten.

ConfusionMatrixDisplay

Visualisierung der Konfusionsmatrix.

confusion_matrix_at_thresholds

Berechnet im binären Fall die Zählungen von True Negative, False Positive, False Negative und True Positive pro Schwellenwert.

Referenzen

[1]

Wikipedia-Eintrag zur Konfusionsmatrix (Wikipedia und andere Referenzen verwenden möglicherweise eine andere Achsenkonvention).

Beispiele

>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

Im binären Fall können wir True Positives usw. wie folgt extrahieren

>>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel().tolist()
>>> (tn, fp, fn, tp)
(0, 2, 1, 1)