In diesem Artikel werde ich die Grundidee der logistischen Regression und des praktischen Codes in Python vorstellen! Ich beabsichtige, das, was ich als Student studiert habe, auf sehr leicht verständliche Weise zusammenzufassen. Ich hoffe, dass jeder, vom Anfänger bis zu denen, die normalerweise Code schreiben, darauf verweisen kann.
Die logistische Regression ist eine Methode, die üblicherweise für die binäre Klassifizierung verwendet wird. Um die Idee der logistischen Regression zu erklären, betrachten Sie beispielsweise das berühmte Titanic-Beispiel.
n Variablen $ (x_0, x_1, x_2 ,, x_n) $ (PassengerID im Titanic-Beispiel)
X =
\begin{bmatrix}
x_0 \\
x_1 \\
x_2 \\
\vdots \\
x_n \\
\end{bmatrix}
W =
\begin{bmatrix}
β_0 \\
β_1 \\
β_2 \\
\vdots \\
β_n \\
\end{bmatrix}
Wie
Z=β_0+β_1x_1+β_2x_2+...+β_nx_n …① \\
= w^{T}X
In diesem Fall drückt die logistische Regression die Wahrscheinlichkeit p wie folgt aus.
p=\frac{1}{1+e^{-(β_0+β_1x_1+β_2x_2+...+β_nx_n)}}
=\frac{1}{1+e^{-Z}} …②
Und für die erhaltenen p
Der grundlegende Ablauf der logistischen Regression besteht darin, zu klassifizieren, ob p den Bereichswert (bestimmte Linie) überschreitet oder nicht.
(1) wird durch Gleichwerttransformation zur folgenden Formel.
\log\frac{p}{1-p}=β_0+β_1x_1+β_2x_2+...+β_nx_n
p=\frac{e^Z}{1+e^Z}\\
⇔e^Z=p(1+e^Z)\\
⇔e^Z=\frac{p}{1-p}\\
⇔\log\frac{p}{1-p}=Z=β_0+β_1x_1+β_2x_2+...+β_nx_n …③
Die linke Seite von ③, das heißt
\log\frac{p}{1-p}
Wird als "Log Odds" (oder "Logit") bezeichnet. Die logistische Regression ist mit anderen Worten ein gegebener Faktor
x_1,x_2,x_3,...x_n
Andererseits erfüllt der optimale Parameter, so dass die Zielvariable p die Gleichung (3) erfüllt.
β_1,β_2,β_3,...β_n
Es ist eine Berechnung zu finden.
Übrigens lautet die Formel (2) in der Grafik wie folgt. Wie Sie in der Grafik sehen können, nimmt der Eingabewert $ Z $ $ -∞ ≤ Z ≤ ∞ $, während der Ausgabewert $ y $ $ 0 <y <1 $ nimmt.
Im Gegensatz zur multiplen Regressionsanalyse, die grundsätzlich eine normale Analyse von Residuen voraussetzt, geht die logistische Regression zweckmäßigerweise nicht von einer Normalverteilung für die Fehlerverteilung aus.
Wie finden Sie die optimalen Parameter? Der Berechnungsteil dieses Kapitels wird automatisch berechnet, wenn Sie LogisticRegression () in Python verwenden, aber wenn Sie es für die Analyse im tatsächlichen Geschäft verwenden: "Es ist passiert, als ich mithilfe der Bibliothek berechnet habe, so dass Wenn Sie sagen "Ich weiß nicht, wie es funktioniert", wird es eine Black Box sein.
Es gibt verschiedene Methoden zur Optimierung von Parametern, aber hier möchte ich die "Newton-Methode" vorstellen.
Schauen wir uns noch einmal die Formel (1) oben an.
p=\frac{1}{1+e^{-(β_0+β_1x_1+β_2x_2+...+β_nx_n)}}
=\frac{1}{1+e^{-Z}} …②
n Datensätze (p und $ x_0, x_1, ... x_n $)
Die logarithmische Wahrscheinlichkeitsfunktion ist
L(w)=log(\prod_{i = 0}^{n}p^Y(1-p)^{1-Y})\\\
⇔L(w)=Y\sum_{i=0}^{n}log{p}+(1-Y)\sum_{i=0}^{n}log{(1-p)}\\\
⇔L(w)=Y\sum_{i=0}^{n}log{\frac{1}{1+e^{-w^Tx}}}+(1-Y)\sum_{i=0}^{n}log{(1-\frac{1}{1+e^{-w^Tx}})}\\\
Sie können $ w $ finden, das dies maximiert. Dies ist gleichbedeutend mit der Minimierung von $ -L (w) $ (= $ E (w) $).
Wie können wir also den Parameter $ w $ finden, der $ E (w) $ minimiert? Hier wird zu Beginn vorläufig ein bestimmtes $ w ^ {(t)} $ gesetzt, und je nach Situation wird $ w ^ {(t + 1)} ← w ^ {(t)} - d ^ {(t)} Lassen Sie uns darüber nachdenken, wie Sie der optimalen Matrix näher kommen, indem Sie $ w $ wie $ aktualisieren. Wie finden Sie $ d ^ {(t)} $? Durch Taylor-Einsatz
E(w+d)∼E(w)+\frac{δE(w)}{δw}d^{(t)}+\frac{1}{2}\frac{δ^2E(w)}{δwδw}{d^{(t)}}^2 …④
Da es ausreicht, d ^ {(t)} zu finden, das dies minimiert, wird es teilweise durch $ d ^ {(t)} $ differenziert.
\frac{δE(w)}{δw}+\frac{δ^2E(w)}{δwδw}{d^{(t)}}=0 \\\
⇔{d^{(t)}}=\left(\frac{δ^2E(w)}{δwδw}\right)^{-1}\frac{δE(w)}{δw}
w^{(t+1)}←w^{(t)}-\left(\frac{δ^2E(w)}{δwδw}\right)^{-1}\frac{δE(w)}{δw} …⑤
Dies ist die Newton-Methode.
Hier,
\frac{δE(w)}{δp}=-\frac{δY\sum_{i=0}^{n}log{p}+(1-Y)\sum_{i=0}^{n}log{(1-p)}}{δp}\\\
=-\frac{Y}{p}+\frac{1-Y}{1-p} \\\
=\frac{p-Y}{p(1-p)}
\frac{δp}{δw}=\frac{δ}{δw}\frac{1}{1+e^{-w^Tx}} \\\
=\frac{δ}{δw}(1+e^{-w^Tx})^{-1} \\\
=\frac{xe^{-w^Tx}}{(1+e^{-w^Tx})^2} \\\
=\frac{xe^{-w^Tx}}{(1+e^{-w^Tx})^2} \\\
=px(1-p)
Deshalb,
\frac{δE(w)}{δw}=\frac{p-Y}{p(1-p)}px(1-p)=x(p-Y) …⑥
Auch die Differenzierung zweiter Ordnung von $ E (w) $ ist
\frac{δ^2E(w)}{δwδw}=\frac{δ}{δw}x\left(\frac{1}{1+e^{-w^Tx}}-Y\right) \\\
=px^2(1-p) …⑦
⑥ Ersetzen Sie ab ⑦ durch ⑤
w^{(t+1)}←w^{(t)}-\frac{1}{px^2(1-p)}x(p-Y) …⑧
L(w+d)∼L(w)+L'(w)h
Basierend auf dem Obigen werden die Parameter durch den folgenden Algorithmus optimiert.
Bisher habe ich die Newton-Methode erklärt. Da diese Newton-Methode eine doppelte Differenzierung verwendet, hat sie den Nachteil, dass der Rechenaufwand sehr groß ist, während die Konvergenzgeschwindigkeit hoch ist.
logistic.py
from sklearn.linear_model import LogisticRegression
lr = LogisticRegression(C=10, solver : {‘newton-cg’})
lr.fit(X_train, y_train)
In Python können Sie die logistische Regression mit dem oben genannten einfachen Code mithilfe einer Bibliothek namens scicit-learn implementieren. Im obigen Code bastele ich an den Zahlen für zwei Parameter, C und Solver. Von diesen legt der Löser das Verfahren zum Finden der oben beschriebenen optimalen Parameter fest. Hier wird die oben erläuterte Newton-Methode verwendet. Als nächstes folgt die Erklärung von C. Dieses C wird als Regularisierung bezeichnet und ist im Allgemeinen der am meisten gesteuerte Parameter.
Bisher habe ich die mathematische Idee der logistischen Regression und das Schreiben von einfachem Code in Python am Beispiel der Titanic erklärt, aber tatsächlich wird die logistische Regression auch in verschiedenen Bereichen der Sozialwissenschaften angewendet.
Im Bereich Rechnungswesen wird beispielsweise bei der Untersuchung des Insolvenzrisikos eines Unternehmens neben dem PL-Zahlenwert wie der Betriebsgewinnmarge das Vorhandensein oder Fehlen eines Hinweises in Bezug auf GC (Going Concern: Übernahme eines fortbestehenden Unternehmens) als ein Faktor zur logischen Rückgabe des Insolvenzrisikos herangezogen. Forschung wird durchgeführt, um in zu analysieren.
Recommended Posts