Die Konfusionsmatrix (auch Wahrheitsmatrix oder engl.: Confusion Matrix) ist ein Werkzeug, um die Qualität eines Klassifikationsmodells im Machine Learning zu beurteilen. Sie überprüft, wie viele der Vorhersagen richtiger- oder fälschlicherweise einer Klasse zugeordnet wurden.
Wie beurteilt man eine Klassifikation?
Im einfachsten Fall besteht eine Klassifikation aus zwei Zuständen. Angenommen wir wollen untersuchen, wie gut Corona-Tests den Infektionsstatus eines Patienten wiederspiegeln. In diesem Fall dient der Corona-Test als Klassifikator von insgesamt zwei Zuständen: infiziert oder nicht-infiziert.
Aus diesen zwei Klassen können sich insgesamt vier Zustände ergeben, abhängig davon, ob die Klassifikation des Tests wirklich korrekt war:
- True Positive: Der Schnelltest klassifiziert die Person als infiziert und ein anschließender PCR-Test bestätigt dieses Ergebnis. Somit war der Schnelltest korrekt.
- False Positive: Der Schnelltest ist für eine Person positiv, jedoch ergibt ein anschließender PCR-Test, dass die Person eigentlich nicht infiziert, also negativ, ist.
- True Negative: Der Schnelltest ist negativ und die Person ist auch wirklich nicht infiziert.
- False Negative: Der Corona-Schnelltest klassifiziert die getestete Person als gesund, also negativ, jedoch ist die Person infiziert und sollte somit einen positiven Schnelltest haben.
Was ist eine Confusion Matrix?
Die Konfusionsmatrix hilft dabei, die Qualität einer erlernten Klassifikation auswerten und neutral bewerten zu können.. Des Weiteren lassen sich mithilfe der Wahrheitsmatrix einfache, spezifische Kennzahlen errechnen. Um die Confusion Matrix aufzubauen, benötigt man das Testset des Datensatzes. Der Klassifikator teilt den Datenpunkten die Klassen zu.
Die Matrix setzt sich aus den bereits genannten Fehlertypen zusammen. Die Zeilen sind dabei die vorhergesagten Klassen für das Testset und die Spalten die tatsächlichen Labels des Testset:

Angenommen unser Testset für die Corona-Schnelltests umfasst 200 Personen, die sich wie folgt auf die einzelnen Zellen aufteilen:

Konkret ergeben sich aus der Matrix folgende Werte:
- True Positive = 120: Insgesamt 120 Personen wurden vom Schnelltest als infiziert klassifiziert und tragen das Virus auch wirklich in sich.
- False Positive = 20: 20 Personen sind laut Schnelltest krank, sind aber in Wirklichkeit gar nicht infiziert.
- False Negative = 40: 40 Probanden wurden laut Schnelltest negativ getestet, sind aber tatsächlich infiziert.
- True Negative = 20: 20 Personen waren wirklich negativ und der Schnelltest hat dies auch bestätigt.
Die Konfusionsmatrix wird deshalb gerne genutzt, um festzustellen welche Art des Fehlers beim Klassifikator häufig vorkommt. Unser beispielhafter Corona-Schnelltest ist in 70 % der Fälle korrekt ((120 + 20) / 200), was auf den ersten Blick kein schlechter Wert ist. Jedoch kommt in 20 % (40 / 200) aller Fälle ein False Negative Fehler vor. Das bedeutet, dass in 20 % aller Fälle, die Person als gesund ausgewiesen wird, obwohl sie eigentlich krank und ansteckend ist. Im Fall einer Viruserkrankung ist also nicht nur die Genauigkeit entscheidend, sondern auch die False Negative Rate.
Diese Kennzahlen lassen sich aus einer Wahrheitsmatrix sehr einfach ablesen und anschließend berechnen.
Welche Kennzahlen lassen sich aus der Confusion Matrix errechnen?
Da jeder Anwendungsfall andere Kennzahlen in den Vordergrund stellt, haben sich über die Zeit einige weit verbreitete Messwerte entwickelt. In diesem Kapitel stellen wir die wichtigsten kurz vor.
Sensitivität
Die Sensitivität, oder auch True-Positive-Rate, umschreibt die Fälle in denen positiv klassifizierte Datenpunkte auch tatsächlich positiv waren:
\(\) \[\text{Recall} = \frac{\text{True Positive}}{\text{True Positive + False Negative}}\]
Diese Kennzahl wird im Englischen auch als der sogenannte Recall bezeichnet. Sie ist von großer Bedeutung, da in vielen Praxisbeispielen das Modell vor allem daran gemessen wird, ob es die positiven Fälle richtig erkennt. Nehmen wir an, wir trainieren ein Klassifikationsmodell, das anhand von Bildern Krebszellen erkennen soll. In diesem Fall ist es sehr wichtig, dass alle positiven Personen, die also wirklich Krebs haben, erkannt werden, damit man die Krankheit frühzeitig behandeln kann. In diesem Beispiel sind andere Kennzahlen nicht von solch großer Bedeutung, denn es schadet nicht, wenn Personen, die keinen Krebs haben, trotzdem genauer untersucht werden.
Spezifizität
Die Spezifizität, oder auch True Negative Rate, misst alle Fälle in denen negativ klassifizierte Datenpunkte auch tatsächlich negativ waren:
\(\) \[\text{Spezifizität} = \frac{\text{True Negative}}{\text{True Negative + False Positive}}\]
Präzision
Die Präzision ist die relative Häufigkeit von richtig, positiv klassifizierten Probanden:
\(\) \[\text{Präzision} = \frac{\text{True Positive}}{\text{True Positive + False Positive}}\]
Genauigkeit
Die Genauigkeit kennen wir bereits aus anderen Modellarten. Sie umschreibt die insgesamt richtig Klassifizierten im Verhältnis zu allen Klassifzierungen:
\(\) \[\text{Genauigkeit} = \frac{\text{True Positive + True Negative}}{\text{True Positive + True Negative + False Positive + False Negative}}\]
Fehlerrate
Die Fehlerrate ist das Gegenteil der Genauigkeit, also der prozentuale Anteil von Falsch – Klassifizierungen:
\(\) \[\text{Fehlerrate} = \frac{\text{False Positive + False Negative}}{\text{True Positive + True Negative + False Positive + False Negative}}\]
Was ist der Unterschied zwischen der Genauigkeit und der Präzision?
Auf den ersten Blick sehen die Formeln für die Genauigkeit und Präzision relativ ähnlich aus, jedoch messen sie leicht unterschiedliche Umstände. Ein gutes Machine Learning Modell muss nach dem Training gute Vorhersagen für neue, ungesehene Daten liefern. Jedoch ist ein solches Modell nur dann wertvoll, wenn es sehr oft gute Vorhersagen liefert und die guten Ergebnisse nicht nur selten auftreten. Diese Eigenschaften lassen sich mit der Genauigkeit und Präzision messen.
Die Genauigkeit misst, wie nahe die Vorhersagen an den gewünschten Werten liegt. Bei einer Klassifikation bedeutet das also, wie oft die vorhergesagte Klasse auch der tatsächlichen entspricht. Die Präzision hingegen misst, wie scharf die Ergebnisse sind, das heißt, wie reproduzierbar die Ergebnisse sind. Konkret bedeutet dies, wie nahe die Ergebnisse für ähnliche Eigenschaftswerte beieinander liegen. Dies gibt eine Aussage über die Reproduzierbarkeit von Ergebnissen da ein Modell nicht wirklich brauchbar ist, wenn es für denselben Datenpunkt bei zwei Vorhersagen zwei sehr unterschiedliche Werte liefert.
Was ist das F-Maß?
Der F-Score, auch F1-Score genannt, ist eine im maschinellen Lernen und in der Datenanalyse weit verbreitete Metrik zur Bewertung der Leistung von Klassifizierungsmodellen. Er ist ein Maß für die Präzision und den Recall eines Modells, wobei die Präzision den Anteil der wahrhaft positiven Ergebnisse an allen vorhergesagten positiven Ergebnissen und der Recall den Anteil der wahrhaft positiven Ergebnisse an allen tatsächlich positiven Ergebnissen angibt.
Der F-Score ist ein gewichtetes harmonisches Mittel aus Precision und Recall und liefert eine einzige Zahl, die die Leistung eines Modells in Bezug auf Precision und Recall zusammenfasst. Der F-Score reicht von 0 bis 1, wobei ein höherer Wert für eine bessere Modellleistung steht. Er wird häufig in Situationen verwendet, in denen ein Ungleichgewicht zwischen der Anzahl positiver und negativer Beispiele in den Daten besteht, da er eine ausgewogene Bewertung der Leistung eines Modells unabhängig von der Klassenverteilung liefert.
\(\) \[\text{F-Score} = \frac{2 \cdot \text{Recall} \cdot \text{Precision}}{\text{Recall} + \text{Precision}}\]
Durch die Nutzung des sogenannten harmonischen Mittels, und nicht des klassischen arithmetischen Mittel, wird sichergestellt, dass Extremwerte einer der beiden Größen deutlich stärker bestraft werden.
Was ist Supervised Learning?
Supervised Learning Algorithmen nutzen Datensätze, um aus den Inputs Zusammenhänge zu lernen und aus diesen dann die gewünschte Vorhersage zu treffen. Im Optimalfall sind die Vorhersage und das Label aus dem Datensatz identisch. Der Trainingsdatensatz enthält Inputs und bereits die korrekten Outputs dafür. Diese kann das Modell nutzen, um in mehreren Iterationen daraus zu lernen. Die Genauigkeit wiederum gibt an, wie oft der richtige Output aus den gegebenen Inputs vorhergesagt werden konnte. Diese wird mithilfe der Verlustfunktion berechnet und der Algorithmus versucht sie so lange zu minimieren, bis ein zufriedenstellendes Ergebnis erreicht wurde.
Supervised Learning lässt sich in zwei grobe Kategorien unterteilen:
- Klassifizierung wird genutzt, um neue Datenobjekte einer oder mehreren vordefinierten Kategorien zuzuordnen. Das Modell versucht aus den Inputs Zusammenhänge zu erkennen, die für die Zuordnung zu einer Kategorie sprechen. Ein Beispiel hierfür sind Bilder, die erkannt und dann einer Klasse zugeordnet werden sollen. Das Modell kann dann für ein Bild beispielsweise vorhersagen, ob darin ein Hund zu erkennen ist oder nicht.
- Regressionen erklären den Zusammenhang zwischen den Inputs, den sogenannten unabhängigen Variablen, und den Outputs, also den abhängigen Variablen. Wenn wir beispielsweise den Umsatz eines Unternehmens vorhersagen wollen und die Marketingaktivität und den Durchschnittspreis des Vorjahres haben, kann die Regression Aufschluss darüber geben, wie hoch der Einfluss der Marketinganstrengungen auf den Umsatz ist.
Wie erstellt man eine Confusion Matrix in Python?
Wenn man in Python einen Klassifikator trainiert hat, lässt sich die Wahrheitsmatrix mithilfe des Moduls “Scikit-Learn” erstellen. Dazu benötigen wir lediglich zwei Arrays mit den vorhergesagten Klassen für das Testset und die tatsächlichen Labels für das Testset. In unserem Fall kann das Klassifikationsmodell zwischen den Klassen “Katze”, “Ameise” und “Vogel” unterscheiden. Entsprechend erwarten wir eine Konfusionsmatrix mit drei Reihen und drei Spalten.
# Import Scikit-Learn
from sklearn.metrics import confusion_matrix
# True Labels of Testset
y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
# Predicted Labels of Testset
y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
# Create Confusion Matrix
confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
Out:
array([[2, 0, 0],
[0, 0, 1],
[1, 0, 2]], dtype=int64)
Diese Wahrheitsmatrix kann nun auch genutzt werden, um sich daraus die True Positives, False Positives, etc. berechnen zu lassen. Bei einer Klassifikation mit mehr als zwei Klassen kann das von Hand durchaus kompliziert sein.
# Get Figures of a two-class Classification
tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()
(tn, fp, fn, tp)
Out:
(0, 2, 1, 1)
# Get Figures of a multi-class Classification
confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"]).ravel()
Out:
array([2, 0, 0, 0, 0, 1, 1, 0, 2], dtype=int64)
Das solltest Du mitnehmen
- Die Konfusionsmatrix hilft bei der Evaluierung von Klassifikationsmodellen.
- Die Konfusionsmatrix enthält in den meisten Fällen vier Felder: True Positive, True Negative, False Positive und False Negative.
- Mithilfe der Felder lassen sich spezielle Kennzahlen errechnen, die bei der Beurteilung des Klassifikators helfen.
Was ist der Adam Optimizer?
Entdecken Sie den Adam Optimizer: Lernen Sie den Algorithmus kennen und erfahren Sie, wie Sie ihn in Python implementieren.
Was ist One-Shot Learning?
Beherrsche One-Shot Learning: Techniken zum schnellen Wissenserwerb und Anpassung. Steigere die KI-Leistung mit minimalen Trainingsdaten.
Was ist die Bellman Gleichung?
Die Beherrschung der Bellman-Gleichung: Optimale Entscheidungsfindung in der KI. Lernen Sie ihre Anwendungen und Grenzen kennen.
Was ist die Singular Value Decomposition?
Erkenntnisse und Muster freilegen: Lernen Sie die Leistungsfähigkeit der Singular Value Decomposition (SVD) in der Datenanalyse kennen.
Was ist die Poisson Regression?
Lernen Sie die Poisson-Regression kennen, ein statistisches Modell für die Analyse von Zähldaten, inkl. einem Beispiel in Python.
Was ist blockchain-based AI?
Entdecken Sie das Potenzial der blockchain-based AI in diesem aufschlussreichen Artikel über Künstliche Intelligenz und Blockchain.
Andere Beiträge zum Thema Konfusionsmatrix
- In folgendem Link findest Du die Dokumentation zur Konfusionsmatrix in Scikit-Learn.

Niklas Lang
Seit 2020 bin ich als Machine Learning Engineer und Softwareentwickler tätig und beschäftige mich leidenschaftlich mit der Welt der Daten, Algorithmen und Softwareentwicklung. Neben meiner Arbeit in der Praxis unterrichte ich an mehreren deutschen Hochschulen, darunter die IU International University of Applied Sciences und die Duale Hochschule Baden-Württemberg, in den Bereichen Data Science, Mathematik und Business Analytics.
Mein Ziel ist es, komplexe Themen wie Statistik und maschinelles Lernen so aufzubereiten, dass sie nicht nur verständlich, sondern auch spannend und greifbar werden. Dabei kombiniere ich praktische Erfahrungen aus der Industrie mit fundierten theoretischen Grundlagen, um meine Studierenden bestmöglich auf die Herausforderungen der Datenwelt vorzubereiten.