Ich habe zwei Klassifikatoren
- A: naives Bayes'sches Netzwerk
- B: Baum (einfach verbunden) Bayesianisches Netzwerk
In Bezug auf Genauigkeit und andere Maßnahmen schneidet A vergleichsweise schlechter ab als B. Wenn ich jedoch die R-Pakete ROCR und AUC für die ROC-Analyse verwende, stellt sich heraus, dass die AUC für A höher ist als die AUC für B. Warum ist das so? Ereignis?
Der wahre positive (tp), der falsche positive (fp), der falsche negative (fn), der wahre negative (tn), die Empfindlichkeit (sen), die Spezifität (spec), der positive Vorhersagewert (ppv), der negative Vorhersagewert (npv) und Die Genauigkeit (gemäß) für A und B ist wie folgt.
+------+---------+---------+
| | A | B |
+------+---------+---------+
| tp | 3601 | 769 |
| fp | 0 | 0 |
| fn | 6569 | 5918 |
| tn | 15655 | 19138 |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv | 1.00000 | 1.00000 |
| npv | 0.70442 | 0.76381 |
| acc | 0.74563 | 0.77084 |
+------+---------+---------+
Mit Ausnahme von sens und ties (spec und ppv) an den Rändern (ohne tp, fn, fn und tn) scheint B besser abzuschneiden als A.
Wenn ich die AUC für sens (y-Achse) gegen 1-spec (x-Achse) berechne
aucroc <- auc(roc(data$prediction,data$labels));
Hier ist der AUC-Vergleich.
+----------------+---------+---------+
| | A | B |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec | 0.70770 | 0.61000 |
+----------------+---------+---------+
Also hier sind meine Fragen:
- Warum ist die AUC für A besser als B, wenn B A in Bezug auf Genauigkeit zu übertreffen scheint?
- Wie bewerte / vergleiche ich die Klassifikationsleistungen von A und B wirklich? Ich meine, verwende ich den AUC-Wert? Benutze ich den acc-Wert und wenn ja, warum?
- Außerdem übertrifft B A in Bezug auf logarithmischen Verlust, quadratischen Verlust und sphärischen Verlust (p <0,001), wenn ich die richtigen Bewertungsregeln für A und B anwende. Wie wirken sich diese Faktoren auf die Beurteilung der Klassifizierungsleistung in Bezug auf die AUC aus?
- Das ROC-Diagramm für A sieht sehr glatt aus (es ist ein gekrümmter Bogen), aber das ROC-Diagramm für B sieht aus wie ein Satz verbundener Linien. Warum ist das?
Wie angefordert, sind hier die Grundstücke für Modell A.
Hier sind die Grundstücke für Modell B.
Hier sind die Histogramm-Diagramme der Verteilung der Wahrscheinlichkeiten für A und B. (Pausen sind auf 20 gesetzt).
Hier ist die Streudiagramm der Wahrscheinlichkeiten von B gegen A.
quelle
Antworten:
Unsachgemäße Bewertungsregeln wie der korrekt klassifizierte Anteil, die Sensitivität und die Spezifität sind nicht nur willkürlich (bei der Auswahl des Schwellenwerts), sondern auch unangemessen, dh sie haben die Eigenschaft, dass ihre Maximierung zu einem falschen Modell, ungenauen Vorhersagen und der Auswahl der falschen Merkmale führt . Es ist gut, dass sie nicht mit den Regeln für die richtige Bewertung (logarithmische Wahrscheinlichkeit; logarithmische Bewertungsregel; Brier-Punktzahl) und dem Index (halb-richtige Bewertungsregel - Bereich unter der ROC-Kurve; Konkordanzwahrscheinlichkeit; Wilcoxon-Statistik; Somers ' übereinstimmen. Rangkorrelationskoeffizient); Dies gibt uns mehr Vertrauen in die richtigen Bewertungsregeln.c Tx y
quelle
Warum ist die AUC für A besser als B, wenn B A in Bezug auf Genauigkeit zu übertreffen scheint?
Die Genauigkeit wird bei dem Schwellenwert von 0,5 berechnet. Während die AUC berechnet wird, werden alle "Genauigkeiten" addiert, die für alle möglichen Schwellenwerte berechnet wurden. Der ROC kann als Durchschnitt (Erwartungswert) dieser Genauigkeiten angesehen werden, wenn sie für alle Schwellenwerte berechnet werden.
Wie bewerte / vergleiche ich die Klassifikationsleistungen von A und B wirklich? Ich meine, verwende ich den AUC-Wert? verwende ich den acc-Wert? und warum?
Es hängt davon ab, ob. ROC-Kurven geben Aufschluss darüber, wie gut Ihr Modell die beiden Klassen voneinander trennt, unabhängig davon, wo der Schwellenwert liegt. Genauigkeit ist ein Maß, das in der Regel gut funktioniert, wenn die Klassen in Zug- und Testsätzen das gleiche Gleichgewicht halten und wenn Punktzahlen wirklich Wahrscheinlichkeiten sind. ROC gibt Ihnen weitere Hinweise zum Verhalten des Modells, wenn diese Annahme verletzt wird (dies ist jedoch nur eine Idee).
Darüber hinaus übertrifft B A in Bezug auf logarithmischen Verlust, quadratischen Verlust und sphärischen Verlust (p <0,001), wenn ich die richtigen Bewertungsregeln für A und B anwende. Wie wirken sich diese Faktoren auf die Beurteilung der Klassifizierungsleistung in Bezug auf die AUC aus?
Ich weiß nicht. Sie müssen besser verstehen, worum es bei Ihren Daten geht. Was jedes Modell anhand Ihrer Daten verstehen kann. Und entscheiden Sie später, welcher der beste Kompromiss ist. Der Grund dafür ist, dass es keine universelle Metrik für die Leistung eines Klassifikators gibt.
Das ROC-Diagramm für A sieht sehr glatt aus (es ist ein gekrümmter Bogen), aber das ROC-Diagramm für B sieht aus wie ein Satz verbundener Linien. warum ist das?
Das liegt wahrscheinlich daran, dass das Bayes'sche Modell weiche Übergänge zwischen diesen beiden Klassen ermöglicht. Das wird in viele Schwellenwerte übersetzt. Das bedeutet viele Punkte auf der ROC-Kurve. Das zweite Modell liefert aufgrund der Vorhersage mit demselben Wert wahrscheinlich weniger Werte für größere Bereiche des Eingaberaums. Grundsätzlich besteht auch die erste ROC-Kurve aus Linien, der einzige Unterschied besteht darin, dass es so viele benachbarte kleine Linien gibt, dass Sie sie als Kurve sehen.
quelle
Erstens ist der Grenzwert (0,5) zwar gleich, aber zwischen A und B überhaupt nicht vergleichbar. Tatsächlich sieht er ziemlich anders aus als Ihre Histogramme! Schauen Sie sich B an: Alle Ihre Vorhersagen sind <0,5.
Zweitens, warum ist B so genau? Wegen des Klassenungleichgewichts. In Test B haben Sie 19138 negative Beispiele und 6687 positive (warum die Zahlen in A unterschiedlich sind, ist mir unklar: fehlende Werte vielleicht?). Das heißt, wenn ich einfach sage, dass alles negativ ist, kann ich bereits eine ziemlich gute Genauigkeit erreichen: genau 19138 / (19138 + 6687) = 74%. Beachten Sie, dass dies überhaupt kein Wissen erfordert, außer dass es ein Ungleichgewicht zwischen den Klassen gibt: Selbst das dümmste Modell kann das!
Und genau das macht Test B bei der Schwelle von 0,5 ... man bekommt (fast) nur negative Vorhersagen.
A ist eher eine gemischte Tüte mit. Obwohl es eine etwas geringere Genauigkeit hat, ist zu beachten, dass die Empfindlichkeit bei diesem Grenzwert viel höher ist ...
Schließlich können Sie die Genauigkeit (eine Leistung bei einem Schwellenwert) nicht mit der AUC (eine durchschnittliche Leistung bei allen möglichen Schwellenwerten) vergleichen. Da diese Metriken verschiedene Dinge messen, ist es nicht verwunderlich, dass sie unterschiedlich sind.
Sie müssen sich fragen: Was möchten Sie wirklich tun? Was ist wichtig? Letztendlich können nur Sie diese Frage beantworten, wenn Sie die Frage kennen. Vielleicht ergibt AUC einen Sinn (das ist selten der Fall, wenn Sie wirklich darüber nachdenken, es sei denn, Sie möchten sich nicht selbst entscheiden, sondern lassen dies andere tun - dies ist am wahrscheinlichsten, wenn Sie ein Tool für andere erstellen), vielleicht die Genauigkeit (wenn Sie eine binäre, Go-No-Go-Antwort benötigen), aber möglicherweise bei unterschiedlichen Schwellenwerten, möglicherweise bei einigen anderen kontinuierlicheren Messwerten, möglicherweise bei einem der von Frank Harrell vorgeschlagenen Messwerte ... Wie bereits erwähnt, gibt es keine universelle Frage Hier.
Zurück zu den Vorhersagen, die Sie in den Histogrammen angezeigt haben. A gibt Ihnen eine kontinuierliche oder nahezu kontinuierliche Vorhersage. Im Gegenteil, B gibt meist nur wenige unterschiedliche Werte zurück (wie Sie am "spitzen" Histogramm sehen können).
In einer ROC-Kurve entspricht jeder Punkt einem Schwellenwert. In A gibt es viele Schwellenwerte (da die Vorhersagen kontinuierlich sind), sodass die Kurve glatt ist. In B haben Sie nur wenige Schwellenwerte, sodass die Kurve von einem SN / SP zu einem anderen "springt".
Sie sehen vertikale Sprünge, wenn sich die Empfindlichkeit nur ändert (der Schwellenwert unterscheidet sich nur in positiven Fällen), horizontale Sprünge, wenn sich die Spezifität nur ändert (der Schwellenwert unterscheidet sich nur bei negativen Beispielen) und diagonale Sprünge, wenn die Änderung des Schwellenwerts beide Klassen betrifft.
quelle