Frage:
Area Under Curve ROC bestraft Modelle mit zu vielen erklärenden Variablen?
Luca Dibo
2015-09-11 00:26:35 UTC
view on stackexchange narkive permalink

Ich verwende Area Under Curve ROC als Leistungsmaß für meine Klassifizierungsalgorithmen (logistische Regressionen). Da ich das Modell auswählen werde, das den ROC "Area Under Curve" maximiert, würde ich gerne wissen, ob die AUC Modelle mit zu vielen Regressoren irgendwie bestraft (z. B. das BIC-Informationskriterium).

Nein, tut es nicht.AUC bewertet nur die prädiktive Leistung und ist völlig unabhängig von der Komplexität des Modells.
Danke Marc.Was ich also nicht verstehe, ist: Ich kann zwischen 30 Regressoren wählen. Warum ist AUC die Maxime mit einer Teilmenge von nur 8 Regressoren?Ich meine, wenn es die Komplexität des Modells nicht beeinträchtigt, warum wählt es dann nicht alle möglichen Regressoren aus?
Wahrscheinlich, weil einige Eingaben die Leistung Ihres Klassifikators beeinträchtigen.Mehr Eingaben garantieren keinen besseren Klassifikator.
Haben Sie die AUC 'in Stichprobe' (d. h. anhand derselben Daten, die Sie für die Schätzung der logistischen Regression verwendet haben) von 'außerhalb der Stichprobe' (anhand anderer Daten als der Daten, die Sie für die Schätzung verwendet haben) berechnet?ID Sie vergleichen die AUC mit den gleichen Daten?
Ich schätze die logistischen Parameter im Trainingssatz (75% des gesamten Datensatzes) und berechne dann die AUC im Testsatz (25%). Ja, ich vergleiche die AUC mit denselben Daten (demselben Testsatz).
@LucaDibo Der Grund, warum Sie sehen, dass AUC weniger Regressoren bevorzugt, liegt nicht an einer besonderen Eigenschaft von AUC.Dies liegt nur daran, dass Sie einen Zugtest-Split verwenden.Siehe meine Antwort unten.
Fünf antworten:
Paul
2015-09-13 18:40:23 UTC
view on stackexchange narkive permalink

Sie erwähnen in den Kommentaren, dass Sie die AUC mit einem 75-25-Zugtest-Split berechnen, und Sie sind verwirrt, warum die AUC maximiert wird, wenn Sie Ihr Modell nur an 8 Ihrer 30 Regressoren trainieren. Daraus haben Sie den Eindruck gewonnen, dass AUC die Komplexität in Ihrem Modell irgendwie beeinträchtigt.

In Wirklichkeit gibt es etwas, das die Komplexität in Ihrem Modell beeinträchtigt, aber es ist nicht die AUC-Metrik. Es handelt sich um die Aufteilung der Zugtests. Aufteilung der Zugtests ermöglicht die Verwendung nahezu aller Metriken, auch der AUC, für die Modellauswahl, auch wenn keine vorhanden sind Inhärente Beeinträchtigung der Modellkomplexität.

Wie Sie wahrscheinlich wissen, messen wir die Leistung nicht an denselben Daten, auf denen wir unsere Modelle trainieren, da die Fehlerrate der Trainingsdaten in der Praxis im Allgemeinen ein zu optimistisches Maß für die Leistung ist (siehe Abschnitt 7.4 des ESL-Buches). Dies ist jedoch nicht der wichtigste Grund für die Verwendung von Zugtest-Splits. Der wichtigste Grund ist, eine Überanpassung mit übermäßig komplexen Modellen zu vermeiden.

Bei zwei Modellen A und B, so dass B "A enthält" (der Parametersatz von B enthält den von A), ist der Trainingsfehler mathematisch garantiert , um Modell B zu bevorzugen, wenn Sie passen an, indem Sie ein Anpassungskriterium optimieren und den Fehler anhand desselben Kriteriums messen. Dies liegt daran, dass B die Daten auf alle Arten anpassen kann, die A kann, sowie auf zusätzliche Arten, die möglicherweise weniger Fehler verursachen als die beste Anpassung von A. Aus diesem Grund hatten Sie einen geringeren Fehler erwartet, als Sie Ihrem Modell mehr Prädiktoren hinzugefügt haben.

Indem Sie Ihre Daten jedoch für Training und Tests in zwei relativ unabhängige Gruppen aufteilen, schützen Sie sich vor dieser Gefahr. Wenn Sie die Trainingsdaten mit vielen Prädiktoren und Parametern aggressiv anpassen, wird die Anpassung der Testdaten nicht unbedingt verbessert. Unabhängig vom Modell oder Anpassungskriterium können wir im Allgemeinen erwarten, dass ein Modell, das die Trainingsdaten überpasst, mit einem unabhängigen Satz von Testdaten, den es noch nie gesehen hat, nicht gut abschneidet. Mit zunehmender Komplexität des Modells in Richtung Überanpassung verschlechtert sich die Leistung des Testsatzes im Allgemeinen, wenn das Modell zunehmend unechte Trainingsdatenmuster aufgreift und seine Vorhersagen immer weiter von den tatsächlichen Trends in dem System entfernt, das es vorhersagen möchte. Siehe zum Beispiel Folie 4 von dieser Präsentation und die Abschnitte 7.10 und 7.12 von ESL.

Wenn Sie noch überzeugen müssen, kann ein einfaches Gedankenexperiment hilfreich sein. Stellen Sie sich vor, Sie haben einen Datensatz von 100 Punkten mit einem einfachen linearen Trend plus Gaußschem Rauschen und möchten ein Polynommodell an diese Daten anpassen. Angenommen, Sie teilen die Daten in Trainings- und Testsätze der Größe 50 auf und passen ein Polynom vom Grad 50 an die Trainingsdaten an. Dieses Polynom interpoliert die Daten und gibt keinen Trainingssatzfehler aus, zeigt jedoch ein wildes Schwingungsverhalten, das es weit weg von der einfachen linearen Trendlinie trägt. Dies führt zu extrem großen Fehlern im Testsatz, die viel größer sind als bei einem einfachen linearen Modell. Das lineare Modell wird also durch einen CV-Fehler begünstigt. Dies ist auch der Fall, wenn Sie das lineare Modell mit einem stabileren Modell wie dem Glätten von Splines vergleichen, obwohl der Effekt weniger dramatisch ist.

Zusammenfassend lässt sich sagen, dass wir durch die Verwendung von Aufteilungstechniken für Zugtests wie CV und die Messung der Leistung der Testdaten eine implizite Bestrafung der Modellkomplexität erhalten, unabhängig davon, welche Metrik wir verwenden, nur weil das Modell Daten vorhersagen muss es hat nicht gesehen. Aus diesem Grund wird die Aufteilung von Zugtests im modernen Ansatz zur Bewertung der Leistung bei Regression und Klassifizierung allgemein verwendet.

Frank Harrell
2015-09-13 17:04:52 UTC
view on stackexchange narkive permalink

Es gibt einen guten Grund, warum die Regressionskoeffizienten bei der logistischen Regression geschätzt werden, indem die Wahrscheinlichkeit maximiert oder die Wahrscheinlichkeit bestraft wird. Dies führt zu bestimmten Optimalitätseigenschaften. Die Konkordanzwahrscheinlichkeit ($ c $ -Index; AUROC) ist eine nützliche ergänzende Maßnahme zur Beschreibung der prädiktiven Diskriminierung des endgültigen Modells, sie ist jedoch nicht empfindlich genug für die von Ihnen geplante Verwendung und würde auch nicht zu einem optimalen Modell führen. Dies ist ganz abgesehen von dem Problem der Überanpassung, das sowohl den $ c $ -Index als auch die (nicht bestrafte) Wahrscheinlichkeit betrifft.

Der $ c $ -Index kann mit einer irreführend kleinen Anzahl von Prädiktoren sein Maximum erreichen. obwohl dies die Komplexität des Modells nicht beeinträchtigt, da die Konkordanzwahrscheinlichkeit keine extremen Vorhersagen belohnt, die "korrekt" sind. $ c $ verwendet nur die Rangfolge der Vorhersagen und nicht die absoluten Vorhersagewerte. $ c $ ist nicht empfindlich genug, um zwei Modelle zu vergleichen.

Die Suche nach einem Modell, das nicht die gesamte Liste der Prädiktoren verwendet, ist häufig nicht gut motiviert. Die Modellauswahl bringt Instabilität und extreme Schwierigkeiten mit Co-Linearitäten mit sich. Wenn Sie eine optimale Vorhersage wünschen, funktioniert die Verwendung aller Kandidatenfunktionen und die Einbeziehung der Bestrafung in den meisten Situationen, denen Sie wahrscheinlich begegnen, am besten. Die Daten enthalten selten genügend Informationen, um die richtigen Entscheidungen darüber zu treffen, welche Variablen "wichtig" und welche wertlos sind.

Ich schätze logistische Parameter im Trainingssatz und berechne dann die AUC im Testsatz.Auf diese Weise überwinde ich das Problem der Überanpassung (glaube ich).Was ich nicht verstehe, ist Folgendes: Da ich zwischen 30 Regressoren wählen kann, warum ist AUC eine Maxime mit einer Teilmenge von nur 8 Regressoren?Ich meine, wenn es die Komplexität des Modells nicht beeinträchtigt, warum wählt es dann nicht alle möglichen Regressoren aus?
AUC sollte in diesem Prozess absolut keine Rolle spielen.Bei der logistischen Regression dreht sich alles um die Wahrscheinlichkeit (oder Abweichung).Sie sollten die Abweichung im Testmuster optimieren.Dies setzt voraus, dass Sie ein großes Training und eine große Testprobe haben, andernfalls ist die Validierung der geteilten Probe instabil.Ich habe meine Antwort erweitert, um Ihre andere Frage zu beantworten.
Eric Czech
2015-09-13 19:42:19 UTC
view on stackexchange narkive permalink

Dies sollte helfen, einige Dinge in so wenigen Worten wie möglich zu klären:

  • AUC = Maß für die tatsächliche Vorhersageleistung des Modells
BIC = Schätzung der Vorhersageleistung des Modells Leistungsmessungen , wie z AUC sind etwas, das Sie verwenden würden, um die Vorhersagen eines Modells für Daten zu bewerten, die es noch nie zuvor gesehen hat.

Informationskriterien , wie BIC, versuchen andererseits, Erraten Sie , wie gut ein Modell Vorhersagen treffen würde, indem Sie verwenden, wie gut das Modell zu den Trainingsdaten passt UND wie viele Parameter verwendet werden, um diese Anpassung als Strafe zu verwenden (die Verwendung der Anzahl der Parameter führt zu besseren Vermutungen).

Einfach ausgedrückt, BIC (und andere Informationskriterien), ungefähr, welche Leistungskennzahlen wie AUC Ihnen direkt geben. Genauer gesagt:

  • Informationskriterien versuchen, die Abweichung außerhalb der Stichprobe mit nur Trainingsdaten zu approximieren und bessere Annäherungen vorzunehmen, wenn Berücksichtigen Sie die Anzahl der verwendeten Parameter.
  • Direkte Leistungsmessungen wie Abweichung oder AUC werden verwendet, um zu bewerten, wie gut ein Modell Vorhersagen zu Validierungs- / Testdaten macht. Die Anzahl der Parameter ist für sie irrelevant, da sie die Leistung auf möglichst einfache Weise veranschaulichen.

Ich dachte, der Zusammenhang zwischen Informationskriterien und Leistungsmaßstäben war zunächst schwer zu verstehen, aber es ist eigentlich ganz einfach. Wenn Sie Abweichung anstelle von AUC als Leistungsmaß verwenden würden, würde BIC Ihnen im Grunde sagen, welche Abweichung Sie erwarten könnten, wenn Sie tatsächlich Vorhersagen mit Ihrem Modell treffen und dann deren Abweichung messen würden.

Dies wirft die Frage auf, warum überhaupt Informationskriterien verwendet werden. Das sollten Sie nicht, wenn Sie nur versuchen, ein möglichst genaues Modell zu erstellen. Halten Sie sich an die AUC , da Modelle mit unnötigen Prädiktoren wahrscheinlich schlechtere Vorhersagen treffen (damit die AUC sie nicht per se bestraft , sie haben einfach weniger Vorhersagekraft).

user83346
2015-09-13 22:47:18 UTC
view on stackexchange narkive permalink

Bei der logistischen Regression (ich mache es zur einfacheren Eingabe univariat) versuchen Sie, ein binäres Ergebnis $ y_i \ in \ {0,1 \} $ zu erklären, indem Sie annehmen, dass es das Ergebnis einer Bernouilli-Zufallsvariablen mit einer Erfolgswahrscheinlichkeit ist $ p_i $, das von Ihrer erklärenden Variablen $ x_i $ abhängt, dh $ p_i = P (y_i = 1 | _ {x_i}) = f (x_i) $, wobei $ f $ die logistische Funktion ist: $ f (x) = \ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x)}} $. Die Parameter $ \ beta_i $ werden nach maximaler Wahrscheinlichkeit geschätzt. Dies funktioniert wie folgt: Für die $ i $ -te Beobachtung beobachten Sie das Ergebnis $ y_i $ und die Erfolgswahrscheinlichkeit ist $ p_i = f (x_i) $, die Wahrscheinlichkeit, $ y_i $ für einen Bernouilli mit Erfolgswahrscheinlichkeit $ p_i $ zu beobachten ist $ p_i ^ {y_i} (1-p_i) ^ {(1-y_i)} $. Für alle Beobachtungen in der Stichprobe beträgt die Wahrscheinlichkeit, $ y_i, i = 1,2, \ dots n $ zu beobachten, unter der Annahme der Unabhängigkeit zwischen den Beobachtungen $ \ prod_ {i = 1} ^ np_i ^ {y_i} (1- p_i) ^ {(1-y_i)} $. Unter Verwendung der obigen Definition von $ p_i = f (x_i) $ wird dies zu $ ​​\ prod_ {i = 1} ^ nf (x_i) ^ {y_i} (1-f (x_i)) ^ {(1-y_i)} = $ . Da die Werte $ y_i $ und $ x_i $ beobachtete Werte sind, können wir dies als Funktion der unbekannten Parameter $ \ beta_i $ sehen, dh $ \ mathcal {L} (\ beta_0, \ beta_1) = \ prod_ {i = 1 } ^ n \ left (\ frac {1} {1 + e ^ {- (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {y_i} \ left (1- \ frac {1} {1 + e ^ { - (\ beta_0 + \ beta_1 x_i)}} \ right) ^ {(1-y_i)} $. Maximale Wahrscheinlichkeit findet die Werte für $ \ beta_i $, die $ \ mathcal {L} (\ beta_0, \ beta_1) $ maximieren. Bezeichnen wir dieses Maximum $ (\ hat {\ beta} _0, \ hat {\ beta} _1) $, dann ist der Wert der Wahrscheinlichkeit in diesem Maximum $ \ mathcal {L} (\ hat {\ beta} _0, \ hat {\ beta} _1) $.

Wenn Sie in ähnlicher Weise zwei erklärende Variablen $ x_1 $ und $ x_2 $ verwendet hätten, hätte die Wahrscheinlichkeitsfunktion drei Parameter $ \ mathcal {L} '(\ beta_0, \ beta_1) , \ beta_2) $ und das Maximum wäre $ (\ hat {\ beta} '_ 0, \ hat {\ beta}' _ 1, \ hat {\ beta} '_ 2) $ und der Wert der Wahrscheinlichkeit wäre $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) $. Offensichtlich würde es gelten, dass $ \ mathcal {L} '(\ hat {\ beta}' _ 0, \ hat {\ beta} '_ 1, \ hat {\ beta}' _ 2) > \ mathcal {L} (\ hat { \ beta} _0, \ hat {\ beta} _1) $, ob die Wahrscheinlichkeitsinkerase signifikant ist, muss mit z ein Likelihood-Ratio-Test. Mit Likelihood-Ratio-Tests können Sie Modelle mit zu vielen Regressoren bestrafen.

Dies gilt nicht für AUC! Tatsächlich sagt Ihnen die AUC nicht einmal, ob Ihre "Erfolgswahrscheinlichkeiten" gut vorhergesagt sind! Wenn Sie alle möglichen Paare $ (i, j) $ mit $ y_i = 1 $ und $ y_j = 0 $ nehmen, entspricht die AUC dem Bruchteil aller dieser Paare mit $ p_i < p_j $. AUC hat also damit zu tun, (1) wie gut Ihr Modell zwischen '0' und '1' unterscheidet (es sagt Ihnen über Paare mit einer 'Null' und einer 'Eins'), es sagt nichts darüber aus, wie gut Ihr Modell ist in der Vorhersage der Wahrscheinlichkeiten! und (2) es basiert nur auf dem 'Ranking' ($ p_i < p_j $) der Wahrscheinlichkeiten. Wenn das Hinzufügen einer erklärenden Variablen nichts an der Rangfolge der Wahrscheinlichkeiten der Probanden ändert, ändert sich die AUC nicht durch Hinzufügen einer erklärenden Variablen.

Also die erste Die Frage, die Sie stellen müssen, ist, was Sie vorhersagen möchten. : Möchten Sie zwischen Nullen und Einsen unterscheiden oder möchten Sie 'gut vorhergesagte Wahrscheinlichkeiten' haben? Erst nachdem Sie diese Frage beantwortet haben, können Sie nach der sparsamsten Technik suchen.

Wenn Sie zwischen Nullen und Einsen unterscheiden möchten, ist ROC / AUC möglicherweise eine Option. Wenn Sie gut vorhergesagte Wahrscheinlichkeiten wünschen, sollten Sie sich den Anpassungstest in der logistischen Regression ansehen. Welche 'Passform' möchten wir testen?.

RUser4512
2015-09-13 15:50:36 UTC
view on stackexchange narkive permalink

Wie Marc sagte, ist AUC nur ein Maß für die Leistung, genau wie die Fehlklassifizierungsrate. Es sind keine Informationen zum Modell erforderlich.

Umgekehrt muss BIC, AIC, die Anzahl der Parameter Ihres zu bewertenden Modells kennen.

Wenn alle Ihre Prädiktoren relevant sind, gibt es keinen guten Grund dafür, dass die Fehlklassifizierungsrate oder die AUC beim Entfernen von Variablen abnimmt.

Es ist jedoch durchaus üblich, dass die Kombination eines Lernalgorithmus, eines Wichtigkeitsmaßes für die Variablen und der Variablenauswahl (basierend auf der Wichtigkeit, die der Algorithmus ihnen gewährt) eine bessere Leistung erbringt als die Anpassung des Modells an den gesamten Datensatz

Sie haben eine Implementierung dieser Methode für zufällige Wälder im R RFauc-Paket.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...