Ich versuche, eine logistische Regression anzupassen, bei der es einen großen Unterschied in der Anzahl der Datenpunkte in beiden Gruppen gibt (70 gegenüber 10.000). Ein statistischer Freund von mir hat mir gesagt, dass dies ein bekanntes Problem mit der logistischen Regression ist und dass es für diese Art von Zahlen die Daten überpasst und im Grunde nicht funktioniert. Wenn ich die Daten ablege und mit dem Modell vergleiche, ist es ziemlich offensichtlich, dass dies definitiv der Fall ist.
Ich frage mich, ob jemand eine bessere / flexiblere Methode zum Anpassen dieser Art von binären Antwortdaten kennt.
(Ich bin übrigens kein Statistiker, also mach es mir leicht!)
modeling
logistic
binary-data
Stacey_bio
quelle
quelle
Antworten:
Dass es nicht funktioniert, liegt nicht an der unausgeglichenen Größe der Gruppen, sondern an der Kleinheit einer der Gruppen. Das Downsampling der größeren Gruppe ist in Ordnung, hilft aber nicht bei der Überanpassung. (Übrigens gibt es eine einfache und elegante Möglichkeit, die Vorhersagen aus dem heruntergetasteten Modell zu korrigieren, indem ± log (r) zu den linearen Termen hinzugefügt wird, wobei r das Downsampling-Verhältnis ist.)
Wenn Überanpassung wirklich das Problem ist, müssen Sie entweder die Anzahl der Variablen verringern oder das Modell regulieren.
quelle
Dieses Problem tritt bei praktisch allen Klassifizierungsansätzen auf, unabhängig davon, ob es sich um logistische Regression, Support-Vektor-Klassifizierung oder Naive Bayes-Klassifizierung handelt. Es gibt zwei miteinander verflochtene Probleme:
Ein Modell, das auf einem unausgeglichenen Datensatz trainiert wurde, kann im Sinne einer Verzerrung zugunsten der Mehrheitsklasse überanpassen .
Bei der Bewertung dieses Modells anhand eines Testdatensatzes mit dem gleichen Grad an Ungleichgewicht kann die Klassifizierungsgenauigkeit ein äußerst irreführendes Leistungsmaß sein.
In der Literatur zu diesen Themen wurden drei Lösungsstrategien entwickelt:
Sie können Guthaben auf dem Trainingssatz wiederherstellen Unterabtastung die große Klasse oder durch Überabtasten die kleine Klasse, Vorspannung in dem erst entstehen (durch @grotos siehe Reaktion) zu verhindern.
Alternativ können Sie die Kosten für eine Fehlklassifizierung ändern, um zu verhindern, dass das Modell überhaupt eine Verzerrung erhält.
Ein zusätzlicher Schutz besteht darin, die Genauigkeit durch die sogenannte ausgeglichene Genauigkeit zu ersetzen . Es ist definiert als das arithmetische Mittel der klassenspezifischen Genauigkeiten wobei und stellen die Genauigkeit dar, die an positiven bzw. negativen Beispielen erhalten wurde. Wenn der Klassifizierer in beiden Klassen gleich gut abschneidet, reduziert sich dieser Begriff auf die herkömmliche Genauigkeit (dh die Anzahl der korrekten Vorhersagen geteilt durch die Gesamtzahl der Vorhersagen). Wenn die herkömmliche Genauigkeit oben Chance ist dagegen nurπ+π-ϕ:=12(π++π−), π+ π− Da der Klassifikator einen unausgeglichenen Testsatz nutzt, fällt die ausgeglichene Genauigkeit gegebenenfalls auf den Zufall (siehe Skizze, die ich aus meiner Antwort auf eine verwandte Frage entnommen habe ).
Wie in meiner vorherigen Antwort ausgeführt, würde ich empfehlen, mindestens zwei der oben genannten Ansätze zusammen zu betrachten. Zum Beispiel könnten Sie Ihre Minderheitsklasse überabtasten, um zu verhindern, dass Ihr Klassifikator eine Tendenz zugunsten der Mehrheitsklasse erwirbt. Wenn Sie anschließend die Leistung Ihres Klassifikators bewerten, können Sie die Genauigkeit durch die ausgeglichene Genauigkeit ersetzen.
quelle
Meinen Sie die Verteilung der Antwort, dh Sie haben 70 Fälle von "JA" und 10000 Fälle von "NEIN"?
Wenn ja, ist dies ein häufiges Problem in Data Mining-Anwendungen. Stellen Sie sich eine Datenbank mit 1.000.000 Instanzen vor, in der nur etwa 1.000 Fälle "JA" sind. Eine Rücklaufquote von 1% und noch weniger ist bei einer Business Predictive Modeling üblich. Und wenn Sie eine Stichprobe auswählen, um ein Modell zu trainieren, ist dies ein großes Problem, insbesondere bei der Beurteilung der Stabilität eines bestimmten Modells.
Wir wählen eine Probe mit unterschiedlichen Proportionen aus. In dem oben genannten Beispiel wären dies 1000 Fälle von "JA" und beispielsweise 9000 Fälle von "NEIN". Dieser Ansatz liefert stabilere Modelle. Es muss jedoch an einer realen Probe getestet werden (die mit 1.000.000 Zeilen).
Ich habe es mit Data Mining-Modellen wie logistischer Regression, Entscheidungsbäumen usw. getestet. Ich habe es jedoch nicht mit "richtigen" [1] Statistikmodellen verwendet.
Sie können es als "Oversampling in Statistiken" suchen, das erste Ergebnis ist ziemlich gut: http://www.statssa.gov.za/isi2009/ScientificProgramme/IPMS/1621.pdf
[1] "richtig" bedeutet "kein Data Mining".
quelle
Wenn Sie eine Klassifizierungstechnik wünschen, die unempfindlich gegenüber dem relativen Anteil von Beispielen aus verschiedenen Klassen ist, haben Support Vector Machines diese Eigenschaft ebenso wie Entscheidungsbäume.
quelle