So berechnen Sie Präzision, Rückruf und F-Maß für unausgewogene Klassifizierung

Tweet Share Share

Zuletzt aktualisiert am 2.August 2020

Klassifizierungsgenauigkeit ist die Gesamtzahl der korrekten Vorhersagen geteilt durch die Gesamtzahl der Vorhersagen für einen Datensatz.

Als Leistungsmaßnahme ist die Genauigkeit bei unausgeglichenen Klassifizierungsproblemen ungeeignet.,

Der Hauptgrund ist, dass die überwältigende Anzahl von Beispielen aus der Mehrheitsklasse (oder Klassen) die Anzahl der Beispiele in der Minderheitsklasse überwältigt, was bedeutet, dass selbst geschickte Modelle Genauigkeitswerte von 90 Prozent oder 99 Prozent erreichen können, je nachdem, wie stark das Klassenungleichgewicht ist.

Eine Alternative zur Verwendung der Klassifizierungsgenauigkeit ist die Verwendung von Präzisions-und Rückrufmetriken.

In diesem Tutorial erfahren Sie, wie Sie eine Intuition für Präzision und Rückruf für unausgeglichene Klassifikation berechnen und entwickeln.,

Nach Abschluss dieses Tutorials wissen Sie:

  • Precision quantifiziert die Anzahl der positiven Klassenvorhersagen, die tatsächlich zur positiven Klasse gehören.
  • Recall quantifiziert die Anzahl positiver Klassenvorhersagen aus allen positiven Beispielen im Datensatz.
  • F-Measure bietet eine einzige Punktzahl, die sowohl die Anliegen der Präzision und Rückruf in einer Zahl balanciert.

Starten Sie Ihr Projekt mit meinem neuen Buch Unausgewogene Klassifizierung mit Python, einschließlich Schritt-für-Schritt-Tutorials und die Python-Quellcode-Dateien für alle Beispiele.,

Los geht ‚ s.

  • Update Jan/2020: Verbesserte Sprache über das Ziel von precision und recall. Feste Tippfehler über das, was Präzision und Rückruf versuchen zu minimieren (danke für die Kommentare!).
  • Update Feb / 2020: Tippfehler im Variablennamen für f1 und f1 behoben.

Wie Berechnen Präzision, Rückruf, und F-Messen für Unausgewogene Klassifizierung
Foto durch Waldemar Merger, einige rechte vorbehalten.,

Tutorial Übersicht

Dieses tutorial ist unterteilt in fünf teile; sie sind:

  1. Verwirrung Matrix für Unausgewogene Klassifizierung
  2. Präzision für Unausgewogene Klassifizierung
  3. Rückruf für Unausgewogene Klassifizierung
  4. Präzision vs. Rückruf für Unausgewogene Klassifizierung
  5. F-Messen für Unausgewogene Klassifizierung

Verwirrung Matrix für Unausgewogene Klassifizierung

Bevor wir tauchen in Präzision und Rückruf ist es wichtig, die Verwirrungsmatrix zu überprüfen.,

Bei unausgeglichenen Klassifizierungsproblemen wird die Mehrheitsklasse typischerweise als negatives Ergebnis bezeichnet (z. B. „keine Änderung“ oder „negatives Testergebnis“), und die Minderheitsklasse wird typischerweise als positives Ergebnis bezeichnet (z. B. „Änderung“ oder „positives Testergebnis“).

Die Verwirrungsmatrix bietet nicht nur einen besseren Einblick in die Leistung eines Vorhersagemodells, sondern auch, welche Klassen richtig vorhergesagt werden, welche falsch und welche Art von Fehlern gemacht werden.,

Die einfachste Verwirrungsmatrix ist für ein Zwei-Klassen-Klassifizierungsproblem mit negativen (Klasse 0) und positiven (Klasse 1) Klassen.

Bei dieser Art von Verwirrungsmatrix hat jede Zelle in der Tabelle einen spezifischen und gut verstandenen Namen, der wie folgt zusammengefasst ist:

Die Genauigkeits-und Rückrufmetriken werden in Bezug auf die Zellen in der Verwirrungsmatrix definiert, insbesondere Begriffe wie true Positive und false Negative.

Nachdem wir nun die Verwirrungsmatrix aufgepeppt haben, schauen wir uns die Präzisionsmetrik genauer an.,

Präzision für unausgeglichene Klassifizierung

Präzision ist eine Metrik, die die Anzahl der korrekten positiven Vorhersagen quantifiziert.

Precision berechnet daher die Genauigkeit für die Minderheitsklasse.

Es wird als das Verhältnis korrekt vorhergesagter positiver Beispiele dividiert durch die Gesamtzahl der vorhergesagten positiven Beispiele berechnet.

Precision wertet den Bruchteil der korrekten klassifizierten Instanzen unter den als positiv klassifizierten aus …

— Seite 52, Lernen aus unausgeglichenen Datensätzen, 2018.,

Genauigkeit für binäre Klassifikation

Bei einem unausgeglichenen Klassifizierungsproblem mit zwei Klassen wird die Genauigkeit als Anzahl der true Positiven dividiert durch die Gesamtzahl der True Positiven und false Positiven berechnet.

  • Precision = TruePositives / (TruePositives + FalsePositives)

Das Ergebnis ist ein Wert zwischen 0,0 für keine Präzision und 1,0 für volle oder perfekte Präzision.

Lassen Sie uns diese Berechnung mit einigen Beispielen konkretisieren.,

Betrachten Sie einen Datensatz mit einem Verhältnis von 1:100 von Minderheit zu Mehrheit mit 100 Minderheitenbeispielen und 10.000 Mehrheitsklassenbeispielen.

Ein Modell macht Vorhersagen und prognostiziert 120 Beispiele, die zur Minderheitsklasse gehören, von denen 90 korrekt und 30 falsch sind.

Die Genauigkeit für dieses Modell wird berechnet als:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Präzision = 90 / (90 + 30)
  • Precision = 90 / 120
  • Precision = 0.75

Das Ergebnis ist eine Genauigkeit von 0,75, das ist ein vernünftiger Wert, aber nicht überragend.,

Sie können sehen, dass Präzision einfach das Verhältnis von korrekten positiven Vorhersagen aus allen positiven Vorhersagen oder die Genauigkeit von Vorhersagen der Minderheitenklasse ist.

Betrachten Sie denselben Datensatz, wobei ein Modell 50 Beispiele vorhersagt, die zur Minderheitsklasse gehören, von denen 45 true Positive und fünf false Positive sind. Wir berechnen die Präzision, die für dieses Modell wie folgt:

  • Precision = TruePositives / (TruePositives + FalsePositives)
  • Präzision = 45 / (45 + 5)
  • Precision = 45 / 50
  • Precision = 0.,90

In diesem Fall ist das Verhältnis der korrekten positiven Beispiele viel besser, obwohl das Modell weit weniger Beispiele als zur Minderheitsklasse gehörend vorhersagte.

Dies zeigt, dass Präzision zwar nützlich ist, aber nicht die ganze Geschichte erzählt. Es wird nicht kommentiert, wie viele echte positive Klassenbeispiele als zur negativen Klasse gehörend vorhergesagt wurden, sogenannte False Negative.

Möchten Sie mit der Klassifizierung beginnen?

Nehmen Sie meinen kostenlosen 7-tägigen E-Mail-crash-Kurs jetzt (mit Beispielcode).,

Klicken Sie zur Anmeldung und erhalten Sie auch eine kostenlose PDF Ebook Version des Kurses.

Laden Sie Ihren KOSTENLOSEN Minikurs herunter

Präzision für die Klassifizierung mehrerer Klassen

Die Genauigkeit ist nicht auf binäre Klassifizierungsprobleme beschränkt.

Bei einem unausgeglichenen Klassifizierungsproblem mit mehr als zwei Klassen wird die Genauigkeit als Summe der wahren Positiven in allen Klassen dividiert durch die Summe der wahren Positiven und der falschen Positiven in allen Klassen berechnet.,

  • Precision = Summe c in C TruePositives_c / Sum c in C (TruePositives_c + FalsePositives_c)

Zum Beispiel, wir können haben eine unausgewogene multiclass classification Problems, wo die Mehrheit der Klasse ist die negative Klasse, aber es gibt zwei positive Minderheit Klassen: Klasse 1 und Klasse 2. Präzision kann das Verhältnis korrekter Vorhersagen über beide positive Klassen quantifizieren.,

Betrachten Sie einen Datensatz mit einem Verhältnis von 1:1: 100 von Minderheit zu Mehrheitsklasse, dh einem Verhältnis von 1:1 für jede positive Klasse und einem Verhältnis von 1:100 für die Minderheitsklassen zur Mehrheitsklasse.und wir haben 100 Beispiele in jeder Minderheitsklasse und 10.000 Beispiele in der Mehrheitsklasse.

Ein Modell macht Vorhersagen und prognostiziert 70 Beispiele für die erste Minderheitsklasse, wobei 50 korrekt und 20 falsch sind. Es sagt 150 für die zweite Klasse mit 99 richtig und 51 falsch voraus., Die Genauigkeit kann für dieses Modell wie folgt berechnet werden:

Wir können sehen, dass die Berechnung der Präzisionsmetrik skaliert, wenn wir die Anzahl der Minderheitenklassen erhöhen.

Genauigkeit berechnen Mit Scikit-Learn

Der Präzisionswert kann mit der Funktion precision_score() scikit-learn berechnet werden.

Mit dieser Funktion können wir beispielsweise die Genauigkeit für die Szenarien im vorherigen Abschnitt berechnen.

Zuerst der Fall, in dem es 100 positive bis 10.000 negative Beispiele gibt und ein Modell 90 true Positive und 30 false Positive vorhersagt. Das vollständige Beispiel ist unten aufgeführt.,

Running the example calculates the precision, matching our manual calculation.

1
Precision: 0.,750

Als nächstes können wir dieselbe Funktion verwenden, um die Genauigkeit zu berechnen für das Mehrklassenproblem mit 1:1:100, mit 100 Beispielen in jeder Minderheitsklasse und 10.000 in der Mehrheitsklasse. Ein Modell sagt 50 True Positive und 20 False Positive für Klasse 1 und 99 True Positive und 51 False Positive für Klasse 2 voraus.,

Bei Verwendung der Funktion precision_score () für die Klassifizierung mehrerer Klassen ist es wichtig, die Minderheitenklassen über das Argument „labels“ anzugeben und das Argument „average“ auf „micro“ zu setzen, um sicherzustellen, dass die Berechnung wie erwartet ausgeführt wird.

Das vollständige Beispiel ist unten aufgeführt.

Wenn Sie das Beispiel erneut ausführen, wird die Genauigkeit für das Multiclass-Beispiel berechnet, das unserer manuellen Berechnung entspricht.,

1
Genauigkeit: 0.,677

Rückruf für unausgewogene Klassifizierung

Rückruf ist eine Metrik, die die Anzahl der korrekten positiven Vorhersagen quantifiziert, die aus allen positiven Vorhersagen gemacht wurden, die hätte gemacht werden können.

Im Gegensatz zu Präzision, die nur Kommentare zu den richtigen positiven Vorhersagen aus allen positiven Vorhersagen, recall bietet einen Hinweis auf verpasste positive Vorhersagen.

Auf diese Weise liefert recall eine Vorstellung von der Abdeckung der positiven Klasse.,

Für unausgewogenes Lernen wird es normalerweise verwendet, um die Abdeckung der Minderheitsklasse zu messen.

Seite 27, Unausgewogen Lernen: Grundlagen, Algorithmen und Anwendungen, 2013.

Rückruf für binäre Klassifizierung

Bei einem unausgeglichenen Klassifizierungsproblem mit zwei Klassen wird der Rückruf als die Anzahl der wahren Positiven geteilt durch die Gesamtzahl der wahren Positiven und der falschen Negativen berechnet.

  • Recall = TruePositives / (TruePositives + FalseNegatives)

Das Ergebnis ist ein Wert zwischen 0.,0 für keinen Rückruf und 1.0 für vollständigen oder perfekten Rückruf.

Lassen Sie uns diese Berechnung mit einigen Beispielen konkretisieren.

Wie im vorherigen Abschnitt, betrachten Sie einen Datensatz mit 1: 100 Minderheit zu Mehrheit Verhältnis, mit 100 Minderheit Beispiele und 10.000 Mehrheitsklasse Beispiele.

Ein Modell macht Vorhersagen und prognostiziert 90 der positiven Klassenvorhersagen korrekt und 10 falsch. Wir berechnen die Rückruf für dieses Modell wie folgt:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • Erinnern = 90 / (90 + 10)
  • Recall = 90 / 100
  • Recall = 0.,9

Dieses Modell hat einen guten Rückruf.

Rückruf für Mehrklassenklassifizierung

Rückruf ist nicht auf binäre Klassifizierungsprobleme beschränkt.

In einem unausgeglichenen Klassifizierungsproblem mit mehr als zwei Klassen wird der Rückruf als Summe der wahren Positiven in allen Klassen dividiert durch die Summe der wahren Positiven und falschen Negativen in allen Klassen berechnet.,

  • Recall = Summe c in C TruePositives_c / Summe c in C (TruePositives_c + FalseNegatives_c)

Betrachten Sie wie im vorherigen Abschnitt einen Datensatz mit einem Verhältnis von 1:1:100 von Minderheit zu Mehrheit, dh einem Verhältnis von 1:1 für jede positive Klasse und einem Verhältnis von 1:100 für die Minderheitenklassen zur Mehrheitenklasse, und wir haben 100 Beispiele in jeder Minderheitenklasse und 10.000 Beispiele in der Mehrheitenklasse.

Ein Modell sagt 77 Beispiele korrekt und 23 falsch für Klasse 1 und 95 richtig und fünf falsch für Klasse 2 voraus., Wir können den Rückruf für dieses Modell wie folgt berechnen:

Rückruf berechnen Mit Scikit-Learn

Der Rückruf-Score kann mit der Funktion recall_score() scikit-learn berechnet werden.

Mit dieser Funktion können wir beispielsweise den Rückruf für die obigen Szenarien berechnen.

Zunächst können wir den Fall eines Ungleichgewichts von 1:100 mit jeweils 100 bzw. 10.000 Beispielen betrachten, und ein Modell sagt 90 true Positive und 10 false Negative voraus.

Das vollständige Beispiel ist unten aufgeführt.

Wenn wir das Beispiel ausführen, können wir sehen, dass die Punktzahl mit der obigen manuellen Berechnung übereinstimmt.,

1
Rückruf: 0.,900

Wir können den recall_score() auch für unausgewogene Klassifizierungsprobleme mit mehreren Klassen verwenden.

In diesem Fall hat der Datensatz ein Ungleichgewicht von 1:1:100 mit 100 in jeder Minderheitsklasse und 10.000 in der Mehrheitsklasse. Ein Modell sagt 77 true Positive und 23 False Negative für Klasse 1 und 95 True Positive und fünf False Negative für Klasse 2 voraus.

Das vollständige Beispiel ist unten aufgeführt.

Wenn Sie das Beispiel erneut ausführen, wird der Rückruf für das Multiclass-Beispiel berechnet, das unserer manuellen Berechnung entspricht.,

1
Recall: 0.860

Precision vs., Rückruf für unausgewogene Klassifizierung

Sie können sich für precision oder Recall für Ihr unausgewogenes Klassifizierungsproblem entscheiden.

Durch die Maximierung der Genauigkeit wird die Anzahl der Fehlalarme minimiert, während durch die Maximierung des Rückrufs die Anzahl der Fehlalarme minimiert wird.

  • Präzision: Geeignet bei der Minimierung von Fehlalarmen ist der Fokus.
  • Recall: Geeignet bei der Minimierung falscher Negative ist der Fokus.

Manchmal wollen wir ausgezeichnete Vorhersagen der positiven Klasse. Wir wollen hohe Präzision und hohen Rückruf.,

Dies kann eine Herausforderung sein, da häufig eine Erhöhung des Rückrufs auf Kosten einer Abnahme der Präzision geht.

In unausgeglichenen Datensätzen besteht das Ziel darin, den Rückruf zu verbessern, ohne die Präzision zu beeinträchtigen. Diese Ziele sind jedoch oft widersprüchlich, da zur Erhöhung der TP für die Minderheitsklasse häufig auch die Anzahl der FP erhöht wird, was zu einer verringerten Präzision führt.

— Seite 55, Unausgewogen Lernen: Grundlagen, Algorithmen und Anwendungen, 2013.,

Anstatt jedoch das eine oder andere Maß auszuwählen, können wir eine neue Metrik auswählen, die sowohl Präzision als auch Rückruf zu einer Punktzahl kombiniert.

F-Maß für unausgeglichene Klassifizierung

Die Klassifizierungsgenauigkeit ist weit verbreitet, da es sich um eine einzige Maßnahme handelt, mit der die Modellleistung zusammengefasst wird.

F-Measure bietet eine Möglichkeit, Präzision und Rückruf zu einem einzigen Maß zu kombinieren, das beide Eigenschaften erfasst.

Allein, weder Präzision noch Rückruf erzählen die ganze Geschichte., Wir können ausgezeichnete Präzision mit schrecklichem Rückruf oder abwechselnd schreckliche Präzision mit ausgezeichnetem Rückruf haben. F-Measure bietet eine Möglichkeit, beide Bedenken mit einer einzigen Punktzahl auszudrücken.

Sobald Präzision und Rückruf für ein binäres oder mehrklassiges Klassifizierungsproblem berechnet wurden, können die beiden Werte in die Berechnung des F-Measures kombiniert werden.

Das traditionelle F-Maß wird wie folgt berechnet:

  • F-Measure = (2 * Precision * Recall) / (Precision + Recall)

Dies ist das harmonische Mittel der beiden Fraktionen., Dies wird manchmal als F-Score oder F1-Score bezeichnet und ist möglicherweise die häufigste Metrik, die bei unausgewogenen Klassifizierungsproblemen verwendet wird.

… das F1-Maß, das Präzision und Rückruf gleichermaßen gewichtet, ist die Variante, die am häufigsten verwendet wird, wenn man aus unausgeglichenen Daten lernt.

Seite 27, Unausgewogen Lernen: Grundlagen, Algorithmen und Anwendungen, 2013.

Wie präzision und rückruf, eine schlechte F-Messen score ist 0,0 und eine beste oder perfekte F-Messen score ist 1.,0

Zum Beispiel würde ein perfekter Präzisions – und Rückrufwert zu einem perfekten F-Measure-Score führen:

  • F-Measure = (2 * Precision * Recall) / (Precision + Recall)
  • F-Measure = (2 * 1.0 * 1.0) / (1.0 + 1.0)
  • F-Messen = (2 * 1.0) / 2.0
  • F-Measure = 1.0

Lassen Sie uns diese Berechnung mit einem funktionierenden Beispiel konkretisieren.

Betrachten Sie einen binären Klassifizierungsdatensatz mit einem Verhältnis von 1: 100 von Minderheit zu Mehrheit mit 100 Minderheitenbeispielen und 10.000 Mehrheitsklassenbeispielen.,

Betrachten Sie ein Modell, das 150 Beispiele für die positive Klasse vorhersagt, 95 sind korrekt (true Positive), was bedeutet, dass fünf verpasst wurden (false Negative) und 55 falsch sind (false Positive).

Wir können die Genauigkeit wie folgt berechnen:

  • Precision = TruePositives /(TruePositives + FalsePositives)
  • Precision = 95 / (95 + 55)
  • Precision = 0.633

Wir können den Rückruf wie folgt berechnen:

  • Recall = TruePositives / (TruePositives + FalseNegatives)
  • Recall = 95 / (95 + 5)
  • Recall = 0.,95

Dies zeigt, dass das Modell eine schlechte Präzision, aber einen hervorragenden Rückruf aufweist.

Schließlich können wir das F-Maß wie folgt berechnen:

Wir können sehen, dass die guten Rückrufaktionen die schlechte Präzision ausmachen und eine in Ordnung oder vernünftige F-Maß-Punktzahl ergeben.

F-Measure berechnen Mit Scikit-Learn

Der F-measure Score kann mit der Funktion f1_score() scikit-learn berechnet werden.

Zum Beispiel verwenden wir diese Funktion, um F-Measure für das obige Szenario zu berechnen.,

Dies ist der Fall bei einem Ungleichgewicht von 1:100 mit jeweils 100 bzw. 10.000 Beispielen, und ein Modell sagt 95 true Positive, fünf false Negative und 55 false Positive voraus.

Das vollständige Beispiel ist unten aufgeführt.

Wenn Sie das Beispiel ausführen, wird das F-Maß, das unserer manuellen Berechnung entspricht, innerhalb einiger geringfügiger Rundungsfehler berechnet.,

1
F-Maß: 0.,760

Weiterlesen

Dieser Abschnitt enthält weitere Ressourcen zum Thema, wenn Sie tiefer gehen möchten.

Tutorials

  • So berechnen Sie Präzision, Rückruf, F1 und mehr für Deep-Learning-Modelle
  • So verwenden Sie ROC-Kurven und Präzisionsrückrufkurven für die Klassifizierung in Python

Papiere

  • Eine systematische Analyse von Leistungsmaßen Für Klassifizierungsaufgaben, 2009.

Bücher

  • Unausgewogenes Lernen: Grundlagen, Algorithmen und Anwendungen, 2013.,
  • Lernen aus unausgeglichenen Datensätzen, 2018.

API

  • sklearn.Metrik.precision_score API.
  • sklearn.Metrik.recall_score API.
  • sklearn.Metrik.f1_score API.

Artikel

  • Verwirrung matrix-Wikipedia.
  • Präzision und Rückruf, Wikipedia.
  • F1-score-Wikipedia.

Zusammenfassung

In diesem Tutorial haben Sie herausgefunden, wie Sie eine Intuition für Präzision und Rückruf für eine unausgeglichene Klassifizierung berechnen und entwickeln können.,

Speziell haben Sie gelernt:

  • Precision quantifiziert die Anzahl der positiven Klassenvorhersagen, die tatsächlich zur positiven Klasse gehören.
  • Recall quantifiziert die Anzahl positiver Klassenvorhersagen aus allen positiven Beispielen im Datensatz.
  • F-Measure bietet eine einzige Punktzahl, die sowohl die Anliegen der Präzision und Rückruf in einer Zahl balanciert.

haben Sie Fragen?
stellen Sie Ihre Fragen in den Kommentaren unten und ich werde mein bestes tun zu beantworten.,

Holen Sie sich einen Griff auf unausgewogene Klassifizierung!

Entwickeln Sie unausgewogene Lernmodelle in Minuten

…mit nur ein paar Zeilen Python-Code

Entdecken Sie, wie in meinem neuen Ebook:
Unausgeglichene Klassifizierung mit Python

Es bietet Selbststudium Tutorials und End-to-End-Projekte auf:
Performance-Metriken, Undersampling-Methoden, SMOTE, Schwelle Verschieben, Wahrscheinlichkeitskalibrierung, kostensensible Algorithmen
und vieles mehr…,

Bringen Sie unausgeglichene Klassifizierungsmethoden in Ihre Machine Learning-Projekte

Sehen Sie, was sich in

befindet Tweet Share Share

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.