Die Receiver-Operating-Characteristic-Kurve, kurz ROC Kurve, ist eine beliebte Metrik im Machine Learning, um die Qualität von Klassifizierungsmodellen zu bewerten. Damit können grafisch verschiedene Schwellenwerte und deren Auswirkung auf die Gesamtleistung verglichen werden. Konkret verglichen wird dabei der Kompromiss zwischen der True Positive Rate (TPR) und der False Positive Rate (FPR) bei verschiedenen Schwellenwerten. In diesem Beitrag wollen wir uns die ROC Kurve genauer anschauen und die Interpretation, sowie die Anwendungen besser verstehen.
Wie beurteilt man eine Klassifikation?
Im einfachsten Fall besteht eine Klassifikation aus zwei Zuständen. Nehmen wir an, wir wollen untersuchen, wie gut Corona-Tests den Infektionsstatus eines Patienten wiedergeben. In diesem Fall dient der Corona-Test als Klassifikator für insgesamt zwei Zustände: infiziert oder nicht-infiziert.
Diese beiden Klassen können zu insgesamt vier Zuständen führen, je nachdem, ob die Klassifizierung des Tests wirklich richtig war:
- Wahr positiv: Der Schnelltest stuft die Person als infiziert ein und ein anschließender PCR-Test bestätigt dieses Ergebnis. Der Schnelltest war also richtig.
- Falsch positiv: Der Schnelltest stuft eine Person als positiv ein, aber ein anschließender PCR-Test zeigt, dass die Person tatsächlich nicht infiziert, also negativ ist.
- Richtig Negativ: Der Schnelltest ist negativ und die Person ist tatsächlich nicht infiziert.
- Falsch-negativ: Der Corona-Schnelltest stuft die getestete Person als gesund, d. h. negativ, ein, die Person ist jedoch infiziert und müsste daher einen positiven Schnelltest aufweisen.
Was ist die ROC Kurve und wie ist sie zu interpretieren?
Die ROC Kurve ist eine grafische Darstellung zur Beurteilung der Qualität eines Klassifikators. Dazu wird ein zweidimensionales Diagramm erstellt, das die True Positive Rate auf der y-Achse und die False Positive Rate auf der x-Achse abträgt. Dann wird ein bestehendes Klassifikationsmodell genutzt und verschiedene Schwellenwerte getestet. Ein Schwellenwert gibt an, ab welcher Wahrscheinlichkeit eine Instanz als positiv oder negativ bewertet wird. Ein Modell beispielsweise, das entscheidet, ob Patienten als krank oder gesund eingestuft werden, gibt nicht direkt zwei Klassen zurück, sondern eine Wahrscheinlichkeit, wie zum Beispiel 0.67. Der Schwellenwert entscheidet, ab welcher dieser Wahrscheinlichkeiten, der Patient wirklich als krank eingestuft wird.
Der Kompromiss liegt darin, dass ein hoher Schwellenwert dafür sorgt, dass die True Positive Rate eher niedrig liegt, da zwar die sehr sicheren Fälle wirklich als krank eingestuft werden. Aber durch den hohen Schwellenwert auch möglicherweise kranke Menschen nicht entdeckt werden, da sie unterhalb der Schwelle liegen. Genauso ist die False Positive Rate auch eher niedrig, da die Anzahl der False Negatives höher ist, was sich auf eine niedrigere False Positive Rate auswirkt.
Um die Kurve zu erstellen werden verschiedene Schwellenwerte getestet und die dazugehörigen Raten abgetragen. Daraus ergibt sich eine exponentiell steigende Kurve. Das perfekte Modell hätte auch einen Punkt in der linken, oberen Ecke. Dort ist der Punkt mit einer True Positive Rate von 1 und einer False Positive Rate von 0.
Außerdem trägt man im Diagramm noch eine diagonale Linie von links, unten nach rechts, oben ein, da eine komplett zufällige Entscheidung zwischen positiv und negativ repräsentiert, bei der man zu 50 % immer richtig liegt. In der Realität befinden sich die Kurven von Modellen irgendwo zwischen dieser Linie und der linken, oberen Ecke. Umso steiler die Kurve ist und umso näher sie an der linken, oberen Ecke liegt, umso besser ist das Modell zu bewerten.
Es ist wichtig zu beachten, dass dieses Diagramm keine Aussage trifft über Vorhersagen von einzelnen Datenpunkten, sondern lediglich einen Gesamteindruck für das Modell darstellt, der es vergleichbar mit anderen Modellen macht. Andere Metriken, wie beispielsweise die Präzision, der Recall oder der F1-Score sollten zusätzlich verwendet werden, um ein allgemeineres Bild über die Leistung des Modells zu bekommen.
Was ist der Bereich unter der Kurve?
Die ROC-Kurve ist eine gute Grafik, um den Kompromiss zwischen der True Positive Rate und der False Positive Rate eines Modells darzustellen. Die Kurven von einzelnen Klassifikationen können auch verglichen werden, indem man sie in ein gemeinsames Diagramm zeichnet. Jedoch fehlt für eine gute Vergleichbarkeit noch eine Quantifizierung, um das Maß dieser Grafik zusammenzufassen.
Um einen Wert für die Klassifikationsleistung zu haben wird die Fläche unter der Kurve berechnet, im Englischen auch Area under the Curve oder kurz AUC. Diese Fläche kann einen Wert zwischen 0 und 1 annehmen, wobei ein Wert von 1 für einen perfekten Klassifikator stehen würde. Umso größer die Fläche unter der Kurve, umso besser ist das Modell. Mathematisch gesprochen gibt diese Fläche die Wahrscheinlichkeit an, dass das Modell eine zufällige, positive Instanz höher einstuft als eine zufällig ausgewählte negative Instanz.
Eine komplett randomisiertes Modell, das jede Instanz nach einem Münzwurf zuordnen würde, hätte einen AUC-Wert von 0,5 (die Fläche unter der roten, gestrichelten Linie). Wenn ein Modell also einen Wert unter 0,5 erreicht, ist es schlechter als eine zufällige Zuweisung der Instanzen. Ein AUC-Wert über 0,5 bedeutet, dass das trainierte Modell besser ist als eine Zufallsentscheidung. Ein Wert nahe der 1 deutet darauf hin, dass der Klassifikator bereits sehr gut zwischen positiven und negativen Instanzen unterscheiden kann.
Der Vorteil des AUC-Wertes als Leistungsmaß ist, dass er nicht von der Klassenverteilung im Datensatz und der Auswahl der Schwellenwert abhängig ist. Zusätzlich bietet diese Kennzahl durch die Interpretation als Wahrscheinlichkeit eine gute Möglichkeit die Leistung des Modells zu veranschaulichen. Ein AUC – Wert von 0,7 kann zum Beispiel so interpretiert werden, dass das Modell mit einer Wahrscheinlichkeit von 70% eine zufällige positive Instanz höher bewertet als eine zufällige negative Instanz.
Wie kann man die ROC Kurve bei Klassifizierungen mit mehreren Kategorien verwenden?
Die ROC-Kurve in der Form, wie wir sie bisher kennengelernt haben, ist ausschließlich für binäre Klassifikationen definiert. In der Praxis gibt es jedoch sogenannte Mehrklassenprobleme, in denen ein Modell lernen muss einen Datenpunkt einer von mehreren Klassen zuzuordnen. Um trotzdem die ROC-Kurve nutzen zu können, muss der Ansatz zu einer binären Situation geändert werden. Dazu nimmt man eine Klasse heraus und definiert diese als positive Klasse, die restlichen Klassen werden als negative Klassen zusammengefasst. Dies ist ein sogenannter Eins-gegen-Alle Ansatz oder in Englisch One-Versus-All (OVA). Anschließend kann die ROC-Kurve für jede der Fälle berechnet werden, in denen eine der Klassen die positive Klasse ist. Diese Kurven können dann zu einer Mehrklassenkurve kombiniert werden.
Diese Mehrklassenkurve kann in der Regel mit einer sogenannten Mikro- oder Makro-Mittelwertbildung erstellt werden. Bei der Mikro-Mittelwertbildung werden die True Positives, die False Positives und die False Negative Klassifikationen für alle Fälle zusammenaddiert und eine einzige Kurve umgewandelt. Dabei werden alle Klassen unabhängig von ihrer individuellen Größe gleich gewichtet, auch wenn diese im Ausgangsdatensatz unterschiedlich häufig vorkommen. Bei der Makro-Mittelwertbildung hingegen berechnet man für jede Klasse eine eigene Kurve. Anschließend wird aus allen Kurven der Mittelwert gebildet. Auch bei diesem Ansatz werden die Klassen unabhängig von ihrer Größe gleich gewichtet.
Die ROC-Kurve wird meist für binäre Klassifikationen genutzt, kann jedoch auch mit den beschriebenen Methoden auf Mehrklassenprobleme ausgeweitet werden. Der AUC bleibt dabei ein wertvolles Maß zur Bewertung der Gesamtleistung des Modells und kann mit anderen Modellen für denselben Datensatz verglichen werden, um eine geeignete Modellarchitektur zu finden.
Wie sieht es im Vergleich zu anderen Bewertungsmetriken aus?
Die ROC-Kurve ist eine beliebte Grafik, die für binäre Klassifikationen geeignet ist. Jedoch ist sie nur eine von vielen Möglichkeiten Klassifikationsmodelle zu bewerten und es sollte abhängig von der Anwendung entschieden werden, welche Evaluierungsmetrik am besten geeignet ist. In bestimmten Szenarien können andere Kennzahlen, wie beispielsweise der Recall oder der F1-Score relevanter sein.
In der medizinischen Diagnose ist es wichtig, eine hohe Trefferquote zu haben und alle positiven Instanzen, also kranken Patienten, zu erkennen. Dafür ist es auch hinnehmbar, dass ein gewisses Maß an Präzision verloren geht und deshalb möglicherweise einige False Positive Errors mit enthalten sind. In solchen Fällen ist die ROC-Kurve möglicherweise nicht optimal geeignet, da sie die True Positive Rate und die False Positive Rate gleich stark gewichtet.
In vielen Anwendungen können ausgeglichene Datensätze, mit gleich vielen positiven wie negativen Instanzen, nur sehr schwierig zu erstellen sein. In Fällen mit unausgewogenen Daten ist die ROC-Kurve nicht aussagekräftig und gibt die Leistung des Modells nicht ausreichend wieder. In solchen Anwendungen ist möglicherweise die Precision-Recall-Kurve besser geeignet, da sie für unausgewogene Datensätze optimiert ist.
Die ROC-Kurve ist insgesamt eine sehr nützliche und weit verbreitete Bewertungsmetrik, die jedoch auf die Anwendung abgestimmt werden sollten. Außerdem sollte abhängig vom Anwendungsfall auch entschieden werden, ob möglicherweise andere Metriken sinnvoll sind, um ein allgemeineres Bild des Modells zu erhalten.
Kann man sie bei unausgewogenen Datensätzen verwenden?
Die ROC-Kurve ist eine beliebte Wahl zur Evaluierung von binären Klassifikationsmodellen, jedoch kann sie bei unausgewogenen Datensätzen Probleme haben und ein falsches Bild der Modellleistung wiedergeben. In der Praxis sind Datensätze oft unausgewogen, da die positive Klasse meist unterrepräsentiert ist im Vergleich zur negativen Klasse. In der medizinischen Analyse beispielsweise enthalten Datensätze meist mehr gesunde Patienten als kranke Patienten oder in der Spam-Erkennung gibt es oft mehr normale E-Mails als Spam-Emails.
In solchen Fällen ist die reine Betrachtung der Genauigkeit des Klassifikators keine gute Bewertungsmetrik, da sie trügerisch sein kann. Angenommen ein Datensatz enthält 70 % negative Instanzen, dann kann ein Modell, das alle Instanzen immer als negativ klassifiziert, bereits eine Genauigkeit von 70 % erreichen. Die ROC-Kurve gibt hier zwar ein ehrlicheres Bild ab, kann jedoch immer noch trügerisch sein, da sie sich auf beide Klassen konzentriert und dadurch ein zu optimistisches Bild abgeben kann.
In Anwendungen mit unausgewogeneren Datensätzen sollte man deshalb die Precision-Recall-Kurve nutzen, da diese sich ausschließlich auf die positive Klasse, also auf die kleinere Klasse, konzentriert und damit die Leistung des Modells unabhängiger bewertet als die ROC-Kurve.
Das solltest Du mitnehmen
- Die sogenannte Receiver Operating Characteristic (ROC) – Kurve dient als grafische Darstellung der Leistung eines binären Klassifikators.
- Dazu zeichnet man die True Positive Rate und die False Positive Rate in einem zweidimensionalen Diagramm ab. Durch verschiedene Schwellenwerte, die abgezeichnet werden, ergibt sich eine Kurve.
- Die Schwellenwerte legen fest, wie hoch die vorhergesagte Wahrscheinlichkeit des Modells sein muss, damit eine Instanz als positiv erkannt wird.
- Die Form der Kurve gibt Aufschluss über die Leistung. Der Graph eines sehr guten Modells läuft nahe am linken, oberen Punkt des Diagramms vorbei.
- Zusätzlich wird die Fläche unter der Kurve (Area Under the Curve, AUC) berechnet, die eine Kennzahl zum Vergleich verschiedener Modelle darstellt.
- Die ROC-Kurve ist ursprünglich nur für binäre Klassifikationen definiert, kann jedoch über den sogenannten Mehrklassenansatz auch auf andere Anwendungen erweitert werden.
- Der AUC-Wert kann als zusätzliche Bewertungsmetrik zur Evaluation eines Klassifikationsmodell genutzt werden.
Was ist blockchain-based AI?
Entdecken Sie das Potenzial der blockchain-based AI in diesem aufschlussreichen Artikel über Künstliche Intelligenz und Blockchain.
Was ist Boosting im Machine Learning?
Boosting: Eine Ensemble-Technik zur Modellverbesserung. Lernen Sie in unserem Artikel Algorithmen wie AdaBoost, XGBoost, uvm. kennen.
Was ist Feature Engineering?
Meistern Sie die Kunst des Feature Engineering: Steigern Sie die Modellleistung und -genauigkeit mit der Datentransformationen!
Was sind N-grams?
Die Macht des NLP: Erforschen Sie n-Grams in der Textanalyse, Sprachmodellierung und verstehen Sie deren Bedeutung im NLP.
Was ist das No-Free-Lunch Theorem (NFLT)?
Entschlüsselung des No-Free-Lunch-Theorems: Implikationen und Anwendungen in ML und Optimierung.
Was ist Automated Data Labeling?
Erschließen Sie die Effizienz des maschinellen Lernens mit Automated Data Labeling. Entdecken Sie die Vorteile, Techniken und Tools.
Andere Beiträge zum Thema ROC Kurve
Scikit-Learn bietet leistungsstarke Funktionen und Module, um diese Maße und Diagramme zu erstellen. Die Dokumentation findest Du hier.
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.