Was ist eine ROC-Kurve?
ROC-Kurven (Grenzwertoptimierungskurven) sind ein wichtiges Hilfsmittel bei der Auswertung der Leistung eines Machine Learning-Modells. Sie werden meistens für binäre Klassifikationsprobleme verwendet, also solche, die zwei unterscheidbare Ausgabeklassen aufweisen. Die ROC-Kurve zeigt die Beziehung zwischen der richtig-positiven Rate (TPR) für das Modell und der falsch-positiven Rate (FPR). TPR ist die Rate, mit der der Klassifizierer „positiv“ für Beobachtungen vorhersagt, die „positiv“ sind. FPR ist die Rate, mit der der Klassifizierer „positiv“ für Beobachtungen vorhersagt, die „negativ“ sind. Ein perfekter Klassifizierer hat eine TPR von 1 und eine FPR von 0.
ROC-Kurven können in MATLAB® mithilfe der perfcurve-Funktion aus der Statistics and Machine Learning Toolbox™ berechnet werden. Zusätzlich generiert die Classification Learner App ROC-Kurven, um die Modellleistung zu beurteilen. Mit der App können verschiedene darzustellende Klassen angegeben werden, um ROC-Kurven für Mehrklassen-Klassifikationsprobleme mit mehr als zwei unterscheidbaren Ausgabeklassen anzuzeigen.
So funktionieren ROC-Kurven
Die meisten Machine Learning-Modelle für die binäre Klassifikation geben bei einer Vorhersage nicht nur 1 oder 0 aus. Stattdessen besteht die Ausgabe aus einem Analogwert im Bereich zwischen [0,1]. Werte über und einschließlich einem bestimmten Schwellenwert (beispielsweise 0,5) werden dann als 1, Werte darunter als 0 klassifiziert. Die Punkte auf der ROC-Kurve stellen die FPR und TPR für verschiedene Schwellenwerte dar.
Der ausgewählte Schwellenwert kann irgendwo zwischen 0 und 1 liegen und die resultierenden Klassifikationen ändern sich je nach Wert dieser Schwelle. Wird der Schwellenwert beispielsweise auf 0 gesetzt, sagt das Modell immer den Wert 1 voraus (da alles über 0 als 1 klassifiziert wird). Es ergibt sich eine TPR von 1 und eine FPR von 1. Wird der Schwellenwert andererseits auf 1 gesetzt. sagt das Modell immer 0 voraus (da alles über 1 als 0 klassifiziert wird). Also sind TPR und FPR beide 0.
Beim Bewerten der Leistung eines Klassifikationsmodells ist das, was zwischen diesen Extremfällen passiert, von größtem Interesse. Im Allgemeinen gilt, dass der Klassifizierer besser ist, je „höher und weiter links“ die ROC-Kurve.
ROC-Kurven werden üblicherweise mit Kreuzvalidierung verwendet, um die Leistung des Modells bei der Validierung oder bzgl. Testdaten auszuwerten.
Mit der perfcurve-Funktion berechnete ROC-Kurven für (von links nach rechts) einen perfekten Klassifizierer, einen typischen Klassifizierer und einen Klassifizierer, der nicht besser als eine Zufallsschätzung ist.
Beispiele und Anleitungen
Software-Referenz
Häufig gestellte Fragen zur ROC-Kurve
Eine ROC-Kurve (Receiver Operating Characteristic-Kurve) ist ein Werkzeug zur Bewertung der Leistung eines Machine-Learning-Modells, indem sie die Beziehung zwischen der True-Positive-Rate (TPR) und der False-Positive-Rate (FPR) über verschiedene Klassifikationsschwellen hinweg darstellt.
Die TPR ist die Rate, mit der der Klassifikator für Beobachtungen, die tatsächlich „positiv“ sind, korrekt „positiv“ vorhersagt.
Die FPR ist die Rate, mit der der Klassifikator für Beobachtungen, die tatsächlich „negativ“ sind, fälschlicherweise „positiv“ vorhersagt.
Je weiter „oben und links“ die ROC-Kurve verläuft, desto besser ist die Leistung des Klassifikators. Ein perfekter Klassifikator hat eine TPR von 1 und eine FPR von 0 und erscheint als Kurve durch die obere linke Ecke.
Jeder Punkt auf der ROC-Kurve repräsentiert die FPR und TPR für verschiedene Schwellenwerte im Bereich [0,1].
Ja, die Classification Learner-App in MATLAB ermöglicht es Ihnen, verschiedene Klassen anzugeben, um ROC-Kurven für Multiklassen-Klassifikationsprobleme mit mehr als zwei unterschiedlichen Ausgabeklassen zu zeichnen.
Sie können ROC-Kurven in MATLAB mit der Funktion perfcurve aus der Statistics and Machine Learning Toolbox oder automatisch mit der Classification Learner-App berechnen bzw. erzeugen.
ROC-Kurven werden am häufigsten für binäre Klassifikationsprobleme verwendet und typischerweise zusammen mit der Kreuzvalidierung eingesetzt, um die Modellleistung an Validierungs- oder Testdaten zu beurteilen.
Siehe auch: Kreuzvalidierung