Regularisierungsmethoden für die logistische Regression


42

Regularisierung mit Methoden wie Ridge, Lasso und ElasticNet ist für die lineare Regression weit verbreitet. Ich wollte Folgendes wissen: Sind diese Methoden für die logistische Regression anwendbar? Wenn ja, gibt es Unterschiede in der Art und Weise, wie sie für die logistische Regression verwendet werden müssen? Wie kann man eine logistische Regression regulieren, wenn diese Methoden nicht anwendbar sind?


Betrachten Sie einen bestimmten Datensatz und müssen daher in Betracht ziehen, die Daten für die Berechnung verfolgbar zu machen, z. B. Auswählen, Skalieren und Versetzen der Daten, damit die anfängliche Berechnung zum Erfolg führt. Oder ist dies ein allgemeinerer Blick auf das Wie und Warum (ohne einen bestimmten Datensatz für die Berechnung gegen 0?
Philip Oakley

1
Dies ist ein allgemeinerer Blick auf das Wie und Warum der Regularisierung. Einführungstexte für Regularisierungsmethoden (Ridge, Lasso, Elasticnet usw.), die ich speziell angesprochenen linearen Regressionsbeispielen begegnet bin. Kein einziger erwähnte die Logistik spezifisch, daher die Frage.
TAK

1
Die logistische Regression ist eine Form von GLM, bei der eine Nichtidentitätsverknüpfungsfunktion verwendet wird. Fast alles gilt.
Firebug

1
Sind Sie auf Andrew Ngs Video zum Thema gestoßen ?
Antoni Parellada

Grat, Lasso und elastische Netzregression sind beliebte Optionen, aber sie sind nicht die einzigen Regularisierungsoptionen. Beispiel: Durch das Glätten von Matrizen werden Funktionen mit großen Sekundenableitungen benachteiligt, sodass Sie mit dem Regularisierungsparameter eine Regression "einwählen" können, die einen guten Kompromiss zwischen Über- und Unteranpassung der Daten darstellt. Wie bei der Ridge / Lasso / Elastic Net-Regression können diese auch bei der logistischen Regression verwendet werden.
Setzen Sie Monica am

Antworten:


49

Ja, Regularisierung kann in allen linearen Methoden verwendet werden, einschließlich Regression und Klassifikation. Ich möchte Ihnen zeigen, dass es keinen zu großen Unterschied zwischen Regression und Klassifikation gibt: Der einzige Unterschied ist die Verlustfunktion.

Insbesondere gibt es drei Hauptkomponenten der linearen Methode: Verlustfunktion, Regularisierung, Algorithmen . Wobei Verlustfunktion plus Regularisierung die Zielfunktion des Problems in Optimierungsform ist und der Algorithmus der Weg zu seiner Lösung ist (die Zielfunktion ist konvex, wir werden in diesem Beitrag nicht darauf eingehen).

L(y^,y)=(y^y)2L(y^,y)=|y^y|L()yy^

L(y^,y)=log(1+exp(y^y))L(y^,y)=(1y^y)+y{1,1}y^y^

In der Regularisierungseinstellung, die Sie über die L1- und L2-Regularisierung erwähnt haben, gibt es auch andere Formen, auf die in diesem Beitrag nicht eingegangen wird.

Daher ist auf hohem Niveau eine lineare Methode

minimizew   x,yL(wx,y)+λh(w)

Wenn Sie die Verlustfunktion von der Regressionseinstellung zum logistischen Verlust ersetzen, erhalten Sie die logistische Regression mit der Regularisierung.

Bei der Gratregression ist das Optimierungsproblem beispielsweise

minimizew   x,y(wxy)2+λww

Wenn Sie die Verlustfunktion durch logistischen Verlust ersetzen, tritt das Problem auf

minimizew   x,ylog(1+exp(wxy))+λww

Hier haben Sie die logistische Regression mit L2-Regularisierung.


So sieht es in einem spielzeugsynthetisierten Binärdatensatz aus. Die linke Abbildung zeigt die Daten mit dem linearen Modell (Entscheidungsgrenze). Die rechte Abbildung zeigt die Zielfunktionskontur (x- und y-Achse repräsentieren die Werte für 2 Parameter.). Der Datensatz wurde aus zwei Gaußschen Werten generiert, und wir passen das logistische Regressionsmodell ohne Unterbrechung an, sodass wir in der rechten Unterabbildung nur zwei Parameter visualisieren können.

Die blauen Linien sind die logistische Regression ohne Regularisierung und die schwarzen Linien sind die logistische Regression mit L2-Regularisierung. Die blauen und schwarzen Punkte in der rechten Abbildung sind optimale Parameter für die Zielfunktion.

λ0

Bildbeschreibung hier eingeben

Hier ist ein weiteres Beispiel mit L1-Regularisierung.

Bildbeschreibung hier eingeben

Beachten Sie, dass der Zweck dieses Experiments darin besteht, zu zeigen, wie die Regularisierung in der logistischen Regression funktioniert, aber nicht, dass ein regularisiertes Modell besser ist.


λλ0

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben


wxyy^=f(x)=wx1

yy{1,1}

y^=wxy^yy^=wx{1,1}y^

y{0,1}

Den Code findest du in meiner anderen Antwort hier.

Gibt es eine intuitive Erklärung dafür, warum logistische Regression für einen perfekten Trennungsfall nicht funktioniert? Und warum behebt das Hinzufügen von Regularisierung das Problem?


4
wTxf(x)

Danke für die Antwort @ hxd1011, können Sie bitte erklären, was die durchgezogenen schwarzen Linien im Konturdiagramm darstellen? Um genauer zu sein, ich weiß, dass (wie Sie erklärt haben) die x- und y-Achse die 2 Parameter zeigen, die wir verwenden. Aber was ist mit den durchgezogenen Linien und ihren Zahlen wie 8000, 10000, 12000. Danke!
Jespar


12

l(β)=l(β)+12ln|i(β)|
i(β)=1nipi(1pi)xixi{(yi,xi)={(1,1),(0,0)}nominell unendlich ML - Schätzungen erzeugen würde, und glmin Rist immer noch anfällig für das Problem, glaube ich.

1
Ja, Sie können dafür R-Pakete logistf oder brglm verwenden! Vielleicht erwähnenswert ...
Tom Wenseleers

Es ist sehr elegant, aber es ist ziemlich langsam für die Optimierung, nicht wahr? Im Gradienten erhalten Sie die Inverse von die in jeder Iteration neu berechnet werden muss ...i(β)
Appletree

Es ist schmerzlich langsam, in der Tat, @appletree
StasK

(+1) Ich hatte noch nie von Firths Korrektur gehört. Ich würde nicht erwarten, dass der implizite Ansatz in der zitierten Veröffentlichung der GLM-Lösung viel Zeit einbringt. (Sie müssen keine Matrix invertieren, sondern nur Hebel berechnen. Wenn Sie den GLM über iterativ gewichtete kleinste Quadrate lösen, sind dies nur die Zeilennormen des Q-Faktors . Die Hebel addieren sich dann einfach zu den Daten und der Belichtung mit statt in der Jeffreys-Anpassung .)1 / 2h/21/2
GeoMatt22

6

Ja, es gilt für die logistische Regression. In R geben Sie mit glmnet einfach die entsprechende Familie an, die für die logistische Regression "binomial" ist. Es gibt einige andere (Gift, Multinomial usw.), die Sie abhängig von Ihren Daten und dem angesprochenen Problem angeben können.


Der Nachteil der Verwendung von glmnet ist, dass Sie mit diesem Ansatz keine Signifikanzstufen erhalten. Wenn Sie sich für diese interessieren, dann R-Pakete logistf oder brglm wäre ein besserer Weg zu gehen ...
Tom Wenseleers

@TomWenseleers Es gibt auch Methoden zum Booten von glmnet, um p-Werte zu erhalten. Es ist jedoch etwas kompliziert, da "
normales

Vielen Dank für mich wissen zu lassen über das, ich habe andere gesehen erwähnen auch diese, zB hier: stats.stackexchange.com/questions/34859/... , kann aber offenbar nichts Standard in einigem R - Paket implementiert zu finden. Hättest du zufällig irgendwelche Hinweise? Oder gute Primärliteratur dazu? Der Nachteil von Bootstrapping ist auch, dass es für große
Datenmengen

Verweisen Sie auf Methoden, wie sie im R-Paket hdi, cran.r-project.org/web/packages/hdi/index.html implementiert sind ?
Tom Wenseleers
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.