Die AUC-ROC-Kurve beim maschinellen Lernen wird anschaulich erklärt

Inhalt

Curva AUC-ROC: Der Star-Künstler!

Sie haben Ihr Machine-Learning-Modell erstellt, dann, Was kommt als nächstes? Sie müssen es bewerten und validieren, wie gut (oder schlecht) es ist, um später zu entscheiden, ob es implementiert werden soll. Hier kommt die AUC-ROC-Kurve ins Spiel..

Der Name kann ein Bissen sein, aber es sagt nur, dass wir die berechnen “Bereich entlang der Kurve” (AUC) des “Empfängereigenschaften-Operator” (ROC). Verwirrt? Ich kann das gut nachfühlen! Ich war in deinen Schuhen. Aber keine Sorge, Wir werden im Detail sehen, was diese Begriffe bedeuten und alles wird ein Kinderspiel!!

meme-5912963

Zur Zeit, wissen Sie nur, dass die AUC-ROC-Kurve uns hilft, zu visualisieren, wie gut unser Klassifikator für maschinelles Lernen funktioniert. Obwohl es nur bei binären Klassifizierungsproblemen funktioniert, wir werden gegen Ende sehen, wie wir es erweitern können, um auch mehrere Klassenklassifikationsprobleme zu bewerten.

Wir werden auch Themen wie Sensitivität und Spezifität behandeln., da dies Schlüsselthemen hinter der AUC-ROC-Kurve sind.

Ich schlage vor, den Artikel über . zu lesen Verwirrung Matrix da es einige wichtige Begriffe einführt, die wir in diesem Artikel verwenden werden.

Inhaltsverzeichnis

  • Was sind Sensitivität und Spezifität??
  • Wahrscheinlichkeit von Vorhersagen
  • Was ist die AUC-ROC-Kurve??
  • Wie funktioniert die AUC-ROC-Kurve?
  • AUC-ROC in Python
  • AUC-ROC für Mehrfachklassifizierung

Was sind Sensitivität und Spezifität??

So sieht eine Konfusionsmatrix aus:

grundlegende-verwirrung-matrix-1987000

Aus der Konfusionsmatrix, können wir einige wichtige Metriken ableiten, die im vorherigen Artikel nicht diskutiert wurden. Reden wir hier über sie.

Empfindlichkeit / True-Positives-Rate / Erholung

Empfindlichkeit-3599495

Die Sensitivität sagt uns, welcher Anteil der positiven Klasse richtig klassifiziert wurde.

Ein einfaches Beispiel wäre, zu bestimmen, welcher Anteil der tatsächlich Erkrankten vom Modell richtig erkannt wurde.

Falsch negative Rate

fnr-3498913

Die Falsch-Negativ-Rate (FNR) sagt uns, welcher Anteil der positiven Klasse vom Klassifikator falsch klassifiziert wurde.

Ein höherer TPR und ein niedrigerer FNR sind wünschenswert, da wir die positive Klasse richtig klassifizieren wollen.

Besonderheit / Richtig negative Rate

Spezifität-8396579

Die Spezifität sagt uns, welcher Anteil der negativen Klasse richtig klassifiziert wurde.

Nehmen wir das gleiche Beispiel wie in Sensitivity, Spezifität würde bedeuten, den Anteil gesunder Personen zu bestimmen, die vom Modell korrekt identifiziert wurden.

Falsch-Positiv-Rate

fpr-7258453

FPR sagt uns, welcher Anteil der negativen Klasse vom Klassifikator falsch klassifiziert wurde.

Ein höherer TNR und ein niedrigerer FPR sind wünschenswert, da wir die negative Klasse richtig klassifizieren wollen.

Von diesen Metriken, Empfindlichkeit Ja Besonderheit sind vielleicht die wichtigsten und wir werden später sehen, wie sie verwendet werden, um eine Bewertungsmetrik zu erstellen. Aber vorher, Lassen Sie uns verstehen, warum die Vorhersagewahrscheinlichkeit besser ist als die direkte Vorhersage der Zielklasse.

Wahrscheinlichkeit von Vorhersagen

Ein Klassifikationsmodell für maschinelles Lernen kann verwendet werden, um die tatsächliche Klasse des Datenpunkts direkt vorherzusagen oder seine Wahrscheinlichkeit vorherzusagen, zu verschiedenen Klassen zu gehören. Letzteres gibt uns mehr Kontrolle über das Ergebnis. Wir können unseren eigenen Schwellenwert bestimmen, um das Ergebnis des Klassifikators zu interpretieren. Das ist manchmal klüger, als nur ein brandneues Modell zu bauen!!

Das Festlegen verschiedener Schwellenwerte zum Klassifizieren der positiven Klasse für die Datenpunkte ändert versehentlich die Sensitivität und Spezifität des Modells.. Und einer dieser Schwellenwerte wird wahrscheinlich ein besseres Ergebnis liefern als die anderen., je nachdem, ob unser Ziel darin besteht, die Anzahl der falsch-negativen oder falsch-positiven Ergebnisse zu reduzieren.

Schauen Sie sich die folgende Tabelle an:

Daten-1-2029385

Metriken ändern sich mit sich ändernden Schwellenwerten. Wir können verschiedene Konfusionsmatrizen erzeugen und die verschiedenen Metriken vergleichen, die wir im vorherigen Abschnitt besprochen haben.. Aber das wäre nicht klug. jedoch, Was wir tun können, ist ein Diagramm zwischen einigen dieser Metriken zu erstellen, damit wir leicht visualisieren können, welcher Schwellenwert uns ein besseres Ergebnis liefert.

Die AUC-ROC-Kurve löst dieses Problem!!

Was ist die AUC-ROC-Kurve??

das Charakteristik des Empfängerbetreibers (ROC) Die Kurve ist eine Bewertungsmetrik für binäre Klassifikationsprobleme. Es ist eine Wahrscheinlichkeitskurve, die die TPR gegen FPR bei verschiedenen Schwellenwerten und im Wesentlichen trenne das 'Signal'’ von "Lärm"’. das Bereich entlang der Kurve (AUC) ist das Maß für die Fähigkeit eines Klassifikators, zwischen Klassen zu unterscheiden, und wird als Zusammenfassung der ROC-Kurve verwendet.

Je höher die AUC, desto besser wird das Modell bei der Unterscheidung zwischen positiven und negativen Klassen abschneiden.

auc1-2945329

Wenn AUC = 1, dann kann der Klassifikator perfekt zwischen allen positiven und negativen Klassenpunkten richtig unterscheiden. Aber trotzdem, wenn die AUC gewesen wäre 0, dann würde der Klassifikator alle negativen als positiv und alle positiven als negativ vorhersagen.

auc3-6074645

Wann 0.5 <AUC <1, es besteht eine hohe Wahrscheinlichkeit, dass der Klassifikator positive Klassenwerte von negativen Klassenwerten unterscheiden kann. Dies liegt daran, dass der Klassifikator mehr wahr positive und wahr negative als falsch negative und falsch positive Ergebnisse erkennen kann..

auc2-6761171

Wenn AUC = 0.5, dann kann der Klassifikator nicht zwischen positiven und negativen Klassenpunkten unterscheiden. Das bedeutet, dass der Klassifikator für alle Datenpunkte eine zufällige Klasse oder eine konstante Klasse vorhersagt.

Deswegen, je höher der AUC-Wert eines Klassifikators, desto besser können Sie zwischen positiven und negativen Klassen unterscheiden.

Wie funktioniert die AUC-ROC-Kurve?

In einer ROC-Kurve, ein höherer X-Achsen-Wert zeigt eine höhere Anzahl falsch positiver als richtig negativer an. Während ein höherer Wert auf der Y-Achse eine größere Anzahl von wahr-positiven als falsch-negativen anzeigt.. Deswegen, Die Wahl des Schwellenwerts hängt von der Fähigkeit ab, zwischen falsch positiven und falsch negativen Ergebnissen zu balancieren.

Lassen Sie uns etwas tiefer graben und verstehen, wie unsere ROC-Kurve für verschiedene Schwellenwerte aussehen würde und wie Spezifität und Sensitivität variieren würden..

auc-roc-curve-2971055

Wir können versuchen, diesen Graphen zu verstehen, indem wir für jeden Punkt, der einem Schwellenwert entspricht, eine Konfusionsmatrix erstellen und über die Leistung unseres Klassifikators sprechen:

Verwirrungsmatrizensa-4673275

Punkt A ist dort, wo die Sensitivität am höchsten und die Spezifität am niedrigsten ist.. Das bedeutet, dass alle positiven Klassenpunkte richtig und alle negativen Klassenpunkte falsch klassifiziert werden..

Eigentlich, Jeder Punkt auf der blauen Linie entspricht einer Situation, in der die True-Positive-Rate der False-Positive-Rate entspricht.

Alle Punkte oberhalb dieser Linie entsprechen der Situation, in der der Anteil der richtig klassifizierten Punkte der Klasse Positiv größer ist als der Anteil der falsch klassifizierten Punkte der Klasse Negativ.

Verwirrungsmatrizenb-8100498

Obwohl Punkt B die gleiche Empfindlichkeit hat wie Punkt A, hat eine höhere Spezifität. Dies bedeutet, dass die Anzahl der fälschlicherweise negativen Klassenpunkte im Vergleich zum vorherigen Schwellenwert geringer ist. Dies zeigt an, dass dieser Schwellenwert besser ist als der vorherige.

Verwirrungsmatrizenscd-1132411

Zwischen den Punkten C und D, Sensitivität bei Punkt C ist höher als bei Punkt D bei gleicher Spezifität. Dies bedeutet, dass, für die gleiche Anzahl falsch klassifizierter negativer Klassenpunkte, der Klassifikator hat eine größere Anzahl positiver Klassenpunkte vorhergesagt. Deswegen, die Schwelle am Punkt C ist besser als am Punkt D.

Jetzt, je nachdem wie viele falsch klassifizierte Punkte wir für unseren Klassifikator tolerieren wollen, Wir würden zwischen Punkt B oder C wählen, um vorherzusagen, ob du mich in PUBG schlagen kannst oder nicht.

“Falsche Hoffnungen sind gefährlicher als Ängste”. – JRR Tolkein

Verwirrungsmatrizen-9204135

Punkt E ist dort, wo die Spezifität am höchsten wird. Das bedeutet, dass das Modell keine falsch positiven Ergebnisse klassifiziert. Das Modell kann alle negativen Klassenpunkte korrekt klassifizieren! Diesen Punkt würden wir wählen, wenn unser Problem darin bestünde, unseren Usern perfekte Song-Empfehlungen zu geben..

Nach dieser Logik, Können Sie erraten, wo der Punkt, der einem perfekten Klassifikator entspricht, auf dem Graphen wäre??

Jawohl! Es wäre in der oberen linken Ecke des ROC-Graphen, das der Koordinate entspricht (0, 1) in der kartesischen Ebene. Hier wären sowohl die Sensitivität als auch die Spezifität am höchsten und der Klassifikator würde alle positiven und negativen Klassenpunkte korrekt klassifizieren..

Verstehen Sie die AUC-ROC-Kurve in Python

Jetzt, Wir können die Sensitivität und Spezifität für jeden Schwellenwert manuell testen oder sklearn die Arbeit für uns erledigen lassen. Wir gehen auf jeden Fall mit dem neuesten!

Erstellen wir unsere willkürlichen Daten mit der sklearn make_classification-Methode:

Ich werde die Leistung von zwei Klassifikatoren für diesen Datensatz testen:

Sklearn hat eine sehr mächtige roc_curve-Methode () die den ROC für Ihren Klassifikator in Sekunden berechnet. Gibt die Schwellenwerte zurück, TPR und FPR:

Der AUC-Score kann mit der Methode roc_auc_score berechnet werden () de sklearn:

0.9761029411764707 0.9233769727403157

Probieren Sie diesen Code im Live-Encoding-Fenster unten aus:

Wir können auch die ROC-Kurven für die beiden Algorithmen mit matplotlib zeichnen:

roc-4785452

Aus dem Diagramm ist ersichtlich, dass die AUC der logistischen Regressions-ROC-Kurve größer ist als die der KNN-ROC-Kurve.. Deswegen, Wir können sagen, dass die logistische Regression die positive Klasse im Datensatz besser klassifiziert hat.

AUC-ROC für Mehrfachklassifizierung

Wie ich bereits gesagt habe, die AUC-ROC-Kurve gilt nur für binäre Klassifikationsprobleme. Aber wir können es mit der One Against All-Technik auf Klassifikationsprobleme mit mehreren Klassen erweitern..

Dann, wenn wir drei klassen haben 0, 1 Ja 2, der ROC für die Klasse 0 wird durch Klassifizieren erzeugt 0 gegen nein 0, nämlich, 1 Ja 2. Der ROC für die Klasse 1 wird durch Klassifizieren erzeugt 1 gegen nein 1, und so weiter.

Die ROC-Kurve für Klassifikationsmodelle mit mehreren Klassen kann wie folgt bestimmt werden:

Mehrklassen-roc-4690120

Abschließende Anmerkungen

Ich hoffe, dieser Artikel hat Ihnen geholfen zu verstehen, wie leistungsfähig die AUC-ROC-Kurvenmetrik zur Messung der Leistung eines Klassifikators ist. Du wirst es viel in der Industrie und sogar in Data Science oder Machine Learning Hackathons verwenden. Mach dich besser damit vertraut!

Weitergehen, Ich würde die folgenden Kurse empfehlen, die bei der Entwicklung Ihres datenwissenschaftlichen Scharfsinns hilfreich sein werden:

Abonniere unseren Newsletter

Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.