[PYTHON] Gründe, warum eine Verwirrungsmatrixbewertung wie Genauigkeit nicht verwendet werden kann

Seit meinem letzten Beitrag ist eine Weile vergangen, aber ich werde ihn von Zeit zu Zeit weiter aktualisieren. Es handelt sich um einen Index wie die Genauigkeit, der häufig zur Bewertung der Genauigkeit des maschinellen Lernens verwendet wird, im Finanzbereich jedoch nur selten verwendet wird. Bevor wir erklären, warum es nicht verwendet wird, sprechen wir über Verwirrungsmatrizen und Metriken wie Genauigkeit. Wenn Sie keine Erklärung benötigen, lesen Sie bitte nur die Probleme und Schlussfolgerungen.

Verwirrung Matrix

Eine Verwirrungsmatrix ist eine Matrix von Vorhersagen und führt zur binären Klassifizierung des maschinellen Lernens. Bei der binären Klassifikation des maschinellen Lernens können die Vorhersagewahrscheinlichkeit und die darauf basierende Vorhersageklassifikation als Ausgabe ausgegeben werden. In der Kreditbewertung werden beispielsweise die Wahrscheinlichkeit einer Überfälligkeit und die Frage, ob sie überfällig ist oder nicht, als 0 und 1 ausgegeben. Basierend darauf wird die Übereinstimmung zwischen der Vorhersage und dem Ergebnis in einer Matrix wie folgt ausgedrückt.

- Prognose(Nicht überfällig) - Positive Prognose(Überfällig sein) - Negative
Ergebnis(Nicht überfällig) - Positive TP(True Positive) FN(False Negative)
Ergebnis(Überfällig) - Negative FP(False Positive) TN(True Negative)

Wenn das Lernergebnis vorhersagt, dass es nicht überfällig ist, wenn das Ergebnis nicht überfällig ist, entspricht es TP, wenn vorhergesagt wird, dass es nicht überfällig ist, entspricht es FN, wenn das Ergebnis überfällig ist. Wenn die Vorhersage korrekt ist, ist es TP oder TN.

Bewertungsindex

Es gibt die folgenden Arten von Bewertungsindizes, die die obige Verwirrungsmatrix verwenden, und jeder hat seine eigenen Eigenschaften. Es wird gesagt, dass je höher der Wert, desto besser die Leistung.

  1. Genauigkeit (Genauigkeitsrate, Genauigkeit) Es ist sehr beliebt und zeigt, wie sehr die Vorhersagen und Ergebnisse insgesamt korrekt waren.

    Accuracy = \frac{TP + TN}{TP + FP + FN + TN}

  2. Präzision Prozentsatz der vorhergesagten positiven Ergebnisse (nicht überfällig).

    Precision = \frac{TP}{TP + FP}

  3. Rückruf Prozentsatz, wie positiv das Ergebnis vorhergesagt werden konnte.

    Recaall = \frac{TP}{TP + FN}

  4. Spezifität Prozentsatz, wie gut die Ergebnisse als negativ vorhergesagt werden konnten.

    Specificity = \frac{TN}{FP + TN}

Probleme und Merkmale von Bewertungsindikatoren

Wenn das Vorhersageergebnis beispielsweise wie folgt lautet:

- Prognose(Nicht überfällig) - Positive Prognose(Überfällig sein) - Negative
Ergebnis(Nicht überfällig) - Positive 980(TP) 0(FN)
Ergebnis(Überfällig) - Negative 20(FP) 0(TN)
Accuracy = \frac{TP + TN}{TP+ FP + FN + TN} = \frac{980}{1000} = 0.98

Daher ist der Genauigkeitswert hoch. Betrachtet man jedoch die Aufschlüsselung, so sind alle Vorhersagen positiv, und wir können keines der negativen Ergebnisse vorhersagen. Abhängig von der Verzerrung der Daten ist die Genauigkeit hoch, selbst wenn alle zufällig als positiv vorhergesagt werden. Also, wenn ich die Spezifität berechne

Specificity = \frac{TN}{FP + TN} = \frac{0}{20} = 0

Sie können sehen, dass es keine Vorhersage gibt, dass es negativ sein wird.

Andere Indikatoren

Es gibt verschiedene Arten von Bewertungsindikatoren, von denen jeder seine eigenen Merkmale aufweist, was die Bewertung tendenziell erschwert. Daher kann ein Index verwendet werden, der als F-Wert (F-Score, F1-Score, F-Maß, F-Skala) bezeichnet wird. Dies ist der harmonisierte Durchschnitt von Präzision und Rückruf.

F1 = 2\frac{Precision * Recall}{Precision + Recall}

Problem

Ich habe verschiedene Metriken erwähnt, die Verwirrungsmatrizen verwenden, aber ich werde sie nicht verwenden. Die Wurzel der Verwirrungsmatrix wird in zwei Begriffe klassifiziert, Positiv und Negativ, und die Richtigkeit der Klassifizierung wird gemessen. Die Klassifizierungsmethode ist positiv, wenn sie niedriger als der auf der vorhergesagten Wahrscheinlichkeit ermittelte Schwellenwert ist, und negativ, wenn sie höher ist. Das erste Problem ist, wenn die Daten verzerrt sind. Wenn die Originaldaten ein Positiv von 99% und ein Negativ von 1% haben, sind die Metrikwerte tendenziell verzerrt. Der zweite ist das Einstellen des Schwellenwerts. Natürlich ändert sich das Verhältnis von positiv und negativ in Abhängigkeit davon, wo der Schwellenwert eingestellt ist, aber es ist tendenziell nicht eindeutig, ob der Schwellenwert angemessen ist. Wenn dies beispielsweise in der Kreditbewertung usw. verwendet wird, schließt Unternehmen A keinen Vertrag über eine überfällige Vorhersage von 5% oder mehr ab, sodass Unternehmen B 5% als Schwellenwert und 10% als Schwellenwert verwendet und als negativ eingestuft wird. Angenommen, Sie unterschreiben keinen Vertrag. Dann ist es nicht so, dass alle als positiv eingestuften Personen überfällig sind, und es wird immer Fälle geben, in denen sie überfällig sind. Dies liegt daran, dass es Fälle gibt, in denen alle angegebenen Informationen (z. B. Attribute und Transaktionsverlauf) nicht überfällig sind. Das Wichtigste bei der Kreditwürdigkeit ist das Produktdesign entsprechend dem Risikograd. Wichtig ist also, welcher Prozentsatz der Wahrscheinlichkeit (Risikograd) und nicht die Genauigkeit der Einstufung als positiv oder negativ. ist.

Fazit

Natürlich kann der obige Bewertungsindex wichtig sein, wenn es wichtig ist, mit hoher Genauigkeit in zwei Begriffe zu klassifizieren, ohne den Grad des Risikos zu berücksichtigen. Wenn Sie den zu verwendenden Index nicht abhängig von seiner Verwendung auswählen, wird die Genauigkeit des Lernmodells anhand des bedeutungslosen Index gemessen und die Genauigkeit als gut oder schlecht bewertet. Erfahren Sie, wie Sie das Modell bewerten und erklären, warum Sie es vorhergesagt haben. Eine Zusammenfassung der Bewertung und Erklärung maschinell erlernter Modelle zur Erstellung eines verstandenen POC.

Recommended Posts

Gründe, warum eine Verwirrungsmatrixbewertung wie Genauigkeit nicht verwendet werden kann
Warum Pandas verwenden? Apply ()