Zum Hauptinhalt springen

4.7 Logistische Regression

Die logistische Regression (logistic regression) ist der probabilistische Weg zur linearen Klassifikation. Statt nur „Klasse +1+1 oder −1-1“ wie das Perceptron liefert sie eine Wahrscheinlichkeit für die Klasse, und ihre Verlustfunktion folgt direkt aus dem Maximum-Likelihood-Prinzip (4.6).

Motivation: Die Challenger-Katastrophe​

📄 04_linear_methods_ws26.pdf, Folie 59 Die Raumfähre Challenger explodierte 1986 kurz nach dem Start, weil die Dichtungsringe (O-rings) an den Feststoffboostern nicht dicht hielten. In der Untersuchungskommission (Rogers Commission) demonstrierte der Physiker Richard Feynman, dass das Material bei niedrigen Temperaturen seine Elastizität verliert. Die Frage der Folie: Wie konnte man das übersehen?

📄 04_linear_methods_ws26.pdf, Folie 60:

  • Am Starttag war es kalt: 31 °F (etwa −0,5-0{,}5 °C).
  • Bei 7 von 23 vorherigen Flügen gab es Probleme mit den Dichtungsringen.
  • Die Tabelle zeigt nur diese 7 Flüge, mit Temperaturen von 53 °F bis 75 °F und 1 bis 2 beschädigten Ringen. Darin ist kein klarer Zusammenhang zu sehen. Ein NASA-Ingenieur: Er könne keine Korrelation zwischen Erosion, Durchblasen der Ringe und Temperatur finden.

Der Fehler: Auch die erfolgreichen Flüge enthalten Information 📄 04_linear_methods_ws26.pdf, Folie 61. Alle 16 Flüge ohne Zwischenfall fanden bei 66 °F bis 81 °F statt, also warm. Nimmt man sie dazu, ist das Muster deutlich: Probleme häufen sich bei Kälte. Ein Start bei 31 °F lag weit unterhalb aller bisherigen Erfahrungen.

Modellierung​

📄 04_linear_methods_ws26.pdf, Folie 62 Man binarisiert die Zielgröße: Y=1Y = 1, wenn ein Dichtungsring beschädigt war, sonst Y=0Y = 0. Gesucht ist

p(x)=P(Y=1∣x),p(x) = P(Y = 1\mid x),

die Wahrscheinlichkeit für einen Defekt bei Temperatur xx.

Notation: Statistikbücher, R und statsmodels schreiben β0=b\beta_0 = b und βj=wj\beta_j = w_j.

Warum nicht lineare Regression?​

Die Folie fragt: Warum ist p(x)=w1x+bp(x) = w_1x + b falsch?

  • Eine Gerade nimmt beliebige reelle Werte an. Für sehr kalte oder sehr warme Temperaturen kommen Werte kleiner als 0 oder größer als 1 heraus, das sind keine Wahrscheinlichkeiten. Gerade die interessante Extrapolation auf 31 °F wäre unsinnig.
  • Der Verlauf ist nicht linear: Bei sehr warmen Temperaturen ist das Risiko praktisch 0, bei sehr kalten praktisch 1, dazwischen gibt es einen Übergang. Das ist eine S-Kurve.
  • Die Daten sind 0/1, die Annahme normalverteilter Fehler mit konstanter Varianz passt überhaupt nicht.

Die Sigmoidfunktion​

📄 04_linear_methods_ws26.pdf, Folie 63 und 📄 04_linear_methods_ws26.pdf, Folie 64: Man berechnet wie gewohnt den linearen Teil z=a⋅x+bz = a\cdot x + b und schickt ihn durch die logistische Funktion (Sigmoid, σ\sigma):

P(Y=1∣X=x)=11+e−(a⋅x+b)=11+e−z=σ(z)=f(x)P(Y = 1\mid X = x) = \frac{1}{1 + e^{-(a\cdot x + b)}} = \frac{1}{1 + e^{-z}} = \sigma(z) = f(x)

σ\sigma bildet z∈(−∞,∞)z \in (-\infty, \infty) auf (0,1)(0, 1) ab:

zz−∞-\infty−4-4−2-2002244∞\infty
σ(z)\sigma(z)→0\to 00,0180,1190,50,8810,982→1\to 1

Für das Challenger-Beispiel liefert das angepasste Modell eine fallende S-Kurve. Bei 31 °F ergibt sich eine Ausfallwahrscheinlichkeit von 0,9997.

Ergänzung: Nützliche Eigenschaften: σ(−z)=1−σ(z)\sigma(-z) = 1 - \sigma(z) und σ′(z)=σ(z)(1−σ(z))\sigma'(z) = \sigma(z)(1-\sigma(z)). Die zweite braucht man gleich für den Gradienten.

Verbleibende Frage der Folie: Wie bestimmt man die Parameter (a,b)(a, b)? Antwort: mit Maximum Likelihood.

Likelihood​

Wahrscheinlichkeit einer einzelnen Beobachtung​

📄 04_linear_methods_ws26.pdf, Folie 65 Für gegebene Parameter liefert die Kurve bei einer bestimmten Temperatur (etwa 75 °F) p1=0,08p_1 = 0{,}08. Bei dieser Temperatur gibt es zwei Datenpunkte:

  • einen mit Y=1Y = 1 (Defekt): Das Modell gibt ihm die Wahrscheinlichkeit p1=0,08p_1 = 0{,}08.
  • einen mit Y=0Y = 0 (in Ordnung): Das Modell gibt ihm die Wahrscheinlichkeit 1−0,08=0,921 - 0{,}08 = 0{,}92.

Das Modell ist eine Bernoulli-Verteilung mit Parameter p=σ(z)p = \sigma(z).

Wahrscheinlichkeit des Trainingsdatensatzes​

📄 04_linear_methods_ws26.pdf, Folie 66 Mit Trainingsdaten (X(i),Y(i))(X^{(i)}, Y^{(i)}), i=1,…,Ni = 1, \dots, N:

p1(X)=P(Y=1∣X)=11+e−(a⋅X+b),p0(X)=1−p1(X)p_1(X) = P(Y = 1\mid X) = \frac{1}{1 + e^{-(a\cdot X + b)}}, \qquad p_0(X) = 1 - p_1(X)

Bei iid-Daten ist die Likelihood das Produkt über alle Punkte:

L(a,b)=∏i ∈ Einsenp1(x(i))  ⋅∏i ∈ Nullenp0(x(i))L(a,b) = \prod_{i\,\in\,\text{Einsen}} p_1(x^{(i)})\;\cdot\prod_{i\,\in\,\text{Nullen}} p_0(x^{(i)})

Diese Wahrscheinlichkeit will man maximieren.

Logarithmieren: die Kreuzentropie​

📄 04_linear_methods_ws26.pdf, Folie 67 Logarithmieren (das Maximum bleibt an derselben Stelle):

log⁡L(a,b)=∑i ∈ Einsenlog⁡p1(x(i))+∑i ∈ Nullenlog⁡p0(x(i))=∑i=1N[yilog⁡p1(x(i))+(1−yi)log⁡p0(x(i))]\log L(a,b) = \sum_{i\,\in\,\text{Einsen}}\log p_1(x^{(i)}) + \sum_{i\,\in\,\text{Nullen}}\log p_0(x^{(i)}) = \sum_{i=1}^N\Big[y_i\log p_1(x^{(i)}) + (1-y_i)\log p_0(x^{(i)})\Big]

Der Trick mit yiy_i und 1−yi1 - y_i: Für yi=1y_i = 1 bleibt nur log⁡p1\log p_1 übrig, für yi=0y_i = 0 nur log⁡p0\log p_0. So kann man beide Summen in einer einzigen schreiben.

Mit Minus und 1N\frac1N ergibt sich die Verlustfunktion, die negative Log-Likelihood oder Kreuzentropie (cross-entropy, auch binary cross-entropy, log loss):

NLL=−1N∑i=1Nlog⁡pθ(y(i)∣x(i))=−1N∑i=1N[yilog⁡pi+(1−yi)log⁡(1−pi)],pi=σ(zi)\text{NLL} = -\frac1N\sum_{i=1}^N\log p_\theta(y^{(i)}\mid x^{(i)}) = -\frac1N\sum_{i=1}^N\Big[y_i\log p_i + (1-y_i)\log(1-p_i)\Big], \quad p_i = \sigma(z_i)

pθ(y(i)∣x(i))p_\theta(y^{(i)}\mid x^{(i)}) ist die Wahrscheinlichkeit, die das Modell der wahren Klasse y(i)y^{(i)} des Trainingsbeispiels gibt (Sprechblase auf der Folie).

Unklarheit auf Folie 67

Auf Folie 66 steht L(a,b)L(a,b) für die Likelihood, auf Folie 67 wird derselbe Buchstabe für die Log-Likelihood verwendet („−NJ(θ)=L(θ)=L(a,b)=∑log⁡…-NJ(\theta) = L(\theta) = L(a,b) = \sum\log\dots“), wobei JJ wohl der gemittelte Verlust ist. Gemeint ist: log⁡L=−N⋅NLL\log L = -N\cdot\text{NLL}.

Zahlenbeispiel: Was die Kreuzentropie bestraft​

Ergänzung: Beitrag eines einzelnen Punktes, −log⁡(Wahrscheinlichkeit fu¨r die wahre Klasse)-\log(\text{Wahrscheinlichkeit für die wahre Klasse}):

wahre Klassevorhergesagtes ppBeitrag
y=1y = 10,9−ln⁡0,9=0,105-\ln 0{,}9 = 0{,}105
y=1y = 10,5−ln⁡0,5=0,693-\ln 0{,}5 = 0{,}693
y=1y = 10,1−ln⁡0,1=2,303-\ln 0{,}1 = 2{,}303
y=1y = 10,001−ln⁡0,001=6,9-\ln 0{,}001 = 6{,}9
y=0y = 00,1−ln⁡0,9=0,105-\ln 0{,}9 = 0{,}105

Sicher und richtig kostet fast nichts, unsicher kostet ln⁡2\ln 2, sicher und falsch wird sehr teuer (gegen ∞\infty für p→0p \to 0). Genau das will man von einem Klassifikator, der Wahrscheinlichkeiten ausgibt.

Gradient der Kreuzentropie​

Ergänzung, nicht auf den Folien (Standardherleitung, prüfungsrelevant). Pro Datenpunkt:

ℓ=−[ylog⁡p+(1−y)log⁡(1−p)],p=σ(z),z=wTx+b\ell = -\big[y\log p + (1-y)\log(1-p)\big], \qquad p = \sigma(z), \qquad z = \boldsymbol w^T\boldsymbol x + b

Schritt 1: Ableitung nach pp.

∂ℓ∂p=−yp+1−y1−p\frac{\partial\ell}{\partial p} = -\frac yp + \frac{1-y}{1-p}

Schritt 2: Ableitung der Sigmoidfunktion. Mit σ(z)=(1+e−z)−1\sigma(z) = (1 + e^{-z})^{-1}:

σ′(z)=e−z(1+e−z)2=11+e−z⏟σ(z)⋅e−z1+e−z⏟1−σ(z)=p(1−p)\sigma'(z) = \frac{e^{-z}}{(1+e^{-z})^2} = \underbrace{\frac{1}{1+e^{-z}}}_{\sigma(z)}\cdot\underbrace{\frac{e^{-z}}{1+e^{-z}}}_{1-\sigma(z)} = p(1-p)

Schritt 3: Kettenregel nach zz.

∂ℓ∂z=(−yp+1−y1−p)p(1−p)=−y(1−p)+(1−y)p=p−y\frac{\partial\ell}{\partial z} = \left(-\frac yp + \frac{1-y}{1-p}\right)p(1-p) = -y(1-p) + (1-y)p = p - y

Die Brüche kürzen sich vollständig weg.

Schritt 4: Kettenregel nach den Gewichten. Wegen ∂z/∂wj=xj\partial z/\partial w_j = x_j und ∂z/∂b=1\partial z/\partial b = 1:

∂ℓ∂wj=(p−y) xj,∂ℓ∂b=p−y\frac{\partial\ell}{\partial w_j} = (p - y)\,x_j, \qquad \frac{\partial\ell}{\partial b} = p - y

Über alle Datenpunkte gemittelt, in Matrixform:

∇wNLL=1NXT(p−y)\boxed{\nabla_{\boldsymbol w}\text{NLL} = \frac1N X^T(\boldsymbol p - \boldsymbol y)}
Dieselbe Struktur wie bei der linearen Regression

Beim MSE war ∇=2NXT(y^−y)\nabla = \frac2N X^T(\hat{\boldsymbol y} - \boldsymbol y), hier ist es 1NXT(p−y)\frac1N X^T(\boldsymbol p - \boldsymbol y): jeweils „Vorhersage minus Wahrheit, gewichtet mit den Eingaben“. Das ist kein Zufall, sondern eine Eigenschaft aller Modelle aus 4.8, bei denen der Adapter zur Verteilung passt.

Anders als bei der linearen Regression lässt sich ∇=0\nabla = 0 nicht geschlossen nach w\boldsymbol w auflösen, weil p\boldsymbol p nichtlinear von w\boldsymbol w abhängt. Man optimiert numerisch, z. B. mit Gradientenabstieg (4.2). Die NLL ist konvex in w\boldsymbol w, es gibt also keine schlechten lokalen Minima.

Ein Gradientenschritt von Hand​

Ergänzung: Vier Punkte in 1D: (0,0)(0, 0), (1,0)(1, 0), (2,1)(2, 1), (3,1)(3, 1) (Paare (x,y)(x, y)). Start w=0w = 0, b=0b = 0, Lernrate η=1\eta = 1.

  • Alle zi=0z_i = 0, also alle pi=0,5p_i = 0{,}5. NLL=ln⁡2=0,693\text{NLL} = \ln 2 = 0{,}693.
  • p−y=(0,5; 0,5; −0,5; −0,5)p - y = (0{,}5;\ 0{,}5;\ -0{,}5;\ -0{,}5).
  • ∂NLL/∂w=14(0,5⋅0+0,5⋅1−0,5⋅2−0,5⋅3)=−0,5\partial\text{NLL}/\partial w = \frac14(0{,}5\cdot0 + 0{,}5\cdot1 - 0{,}5\cdot2 - 0{,}5\cdot3) = -0{,}5.
  • ∂NLL/∂b=14(0,5+0,5−0,5−0,5)=0\partial\text{NLL}/\partial b = \frac14(0{,}5 + 0{,}5 - 0{,}5 - 0{,}5) = 0.
  • Update: w=0−1⋅(−0,5)=0,5w = 0 - 1\cdot(-0{,}5) = 0{,}5, b=0b = 0.

Neue Wahrscheinlichkeiten p=σ(0,5x)=(0,5; 0,622; 0,731; 0,818)p = \sigma(0{,}5x) = (0{,}5;\ 0{,}622;\ 0{,}731;\ 0{,}818), neue NLL=−14(ln⁡0,5+ln⁡0,378+ln⁡0,731+ln⁡0,818)=0,545\text{NLL} = -\frac14(\ln 0{,}5 + \ln 0{,}378 + \ln 0{,}731 + \ln 0{,}818) = 0{,}545. Der Verlust ist gesunken. Weitere Schritte verschieben vor allem bb ins Negative, bis die Grenze p=0,5p = 0{,}5 zwischen x=1x = 1 und x=2x = 2 liegt.

Fallstrick: Linear trennbare Daten

Ergänzung: Das Beispiel oben ist linear trennbar. Dann kann man die NLL beliebig nahe an 0 bringen, indem man ww immer größer macht (die S-Kurve wird zur Treppe). Ohne Regularisierung wachsen die Gewichte über alle Grenzen, das Optimum existiert nicht. Deshalb verwendet z. B. LogisticRegression in scikit-learn standardmäßig eine L2-Strafe wie bei Ridge (Parameter C =1/λ= 1/\lambda).

Logistische Regression als neuronales Netz​

📄 04_linear_methods_ws26.pdf, Folie 68 „Die Mutter aller neuronalen Netze“: ein Neuron mit Eingängen 1,x1,x2,…1, x_1, x_2, \dots, Gewichten β0,β1,β2,…\beta_0, \beta_1, \beta_2, \dots, der Summe zz und der Sigmoid-Aktivierung.

z=β0+β1x    (1D),z=β0+x1β1+x2β2=βTx    (multivariat)z = \beta_0 + \beta_1x \;\;\text{(1D)}, \qquad z = \beta_0 + x_1\beta_1 + x_2\beta_2 = \boldsymbol\beta^T\boldsymbol x \;\;\text{(multivariat)} p1(x)=P(Y=1∣X=x)=[1+exp⁡(−βTx)]−1=exp⁡(βTx)1+exp⁡(βTx)=f(βTx)p_1(x) = P(Y = 1\mid X = x) = \big[1 + \exp(-\boldsymbol\beta^T\boldsymbol x)\big]^{-1} = \frac{\exp(\boldsymbol\beta^T\boldsymbol x)}{1 + \exp(\boldsymbol\beta^T\boldsymbol x)} = f(\boldsymbol\beta^T\boldsymbol x)

(Die zweite Form erhält man durch Erweitern mit exp⁡(βTx)\exp(\boldsymbol\beta^T\boldsymbol x).)

Geometrie in 2D​

📄 04_linear_methods_ws26.pdf, Folie 69 Die Demo zeigt dieselben Daten wie die Perceptron-Demo:

  • Die Entscheidungsgrenze z=0z = 0 entspricht p=0,5p = 0{,}5. Sie ist eine Gerade, die logistische Regression ist also ein linearer Klassifikator.
  • Die Linien p=0,1p = 0{,}1, 0,250{,}25, 0,750{,}75, 0,90{,}9 sind dazu parallel. Je weiter ein Punkt von der Grenze entfernt ist, desto sicherer ist das Modell.
  • Die Länge von (β1,β2)(\beta_1, \beta_2) bestimmt, wie schnell pp senkrecht zur Grenze von 0 nach 1 wechselt (wie steil die S-Kurve ist).

Interpretation mit Odds​

📄 04_linear_methods_ws26.pdf, Folie 70 Aus der Modellgleichung

p(x)=ew1x+b1+ew1x+bp(x) = \frac{e^{w_1x+b}}{1 + e^{w_1x+b}}

folgt für die Odds (Chancen, Wettquote):

odds(x):=p(x)1−p(x)=ew1x+b,log⁡(odds(x))=w1x+b\text{odds}(x) := \frac{p(x)}{1-p(x)} = e^{w_1x+b}, \qquad \log\big(\text{odds}(x)\big) = w_1x + b

Rechnung (Ergänzung): 1−p=11+ez1 - p = \frac{1}{1+e^{z}}, also p1−p=ez\frac{p}{1-p} = e^z.

Fakten:

  • Die logistische Regression modelliert die Log-Odds (auch Logit) als lineare Regression.
  • Die Entscheidungsgrenze ist linear.
  • Odds liegen zwischen 00 und +∞+\infty, Log-Odds zwischen −∞-\infty und +∞+\infty. Deshalb passt ein linearer Ausdruck zu den Log-Odds, nicht zur Wahrscheinlichkeit selbst.

Interpretation: Odds sind „Wahrscheinlichkeit für das Ereignis“ durch „Wahrscheinlichkeit dagegen“.

  • Federer gegen Nadal 2:1: Es ist doppelt so wahrscheinlich, dass Federer gewinnt, wie dass er verliert. Das entspricht p=2/3p = 2/3.
  • Pferd Clever Hans gewinnt 3:1: dreimal wahrscheinlicher, dass Hans gewinnt, als dass er nicht gewinnt, p=3/4p = 3/4.
  • Odds für einen defekten gegenüber einem intakten Dichtungsring: 8:1, also p=8/9p = 8/9. (Die Folie nennt nur die Zahl, ohne zu sagen, auf welche Temperatur sie sich bezieht.)

Ergänzung: Umrechnung p=odds1+oddsp = \frac{\text{odds}}{1 + \text{odds}}. Odds 1:1 entsprechen p=0,5p = 0{,}5 und Log-Odds 0, das ist genau die Entscheidungsgrenze.

Odds Ratios​

📄 04_linear_methods_ws26.pdf, Folie 71 Wie ändern sich die Odds mit xx? Tennisbeispiel mit einer binären Variable xx (1 = Rasen):

Odds
x=0x = 0 (kein Rasen)odds(x=0)=exp⁡(b)=1,2\text{odds}(x = 0) = \exp(b) = 1{,}2
x=1x = 1 (Rasen)odds(x=1)=exp⁡(w1⋅1+b)=2\text{odds}(x = 1) = \exp(w_1\cdot 1 + b) = 2

Odds Ratio:

ORx=0→x=1=odds(x=1)odds(x=0)=ew1+beb=exp⁡(w1⋅1),log⁡(ORx=0→x=1)=w1OR_{x=0\to x=1} = \frac{\text{odds}(x=1)}{\text{odds}(x=0)} = \frac{e^{w_1 + b}}{e^{b}} = \exp(w_1\cdot 1), \qquad \log(OR_{x=0\to x=1}) = w_1

Mit den Zahlen (Ergänzung): OR=2/1,2≈1,67OR = 2/1{,}2 \approx 1{,}67, also w1=ln⁡1,67≈0,51w_1 = \ln 1{,}67 \approx 0{,}51 und b=ln⁡1,2≈0,18b = \ln 1{,}2 \approx 0{,}18. In Wahrscheinlichkeiten: p(x=0)=1,2/2,2≈0,55p(x=0) = 1{,}2/2{,}2 \approx 0{,}55, p(x=1)=2/3≈0,67p(x=1) = 2/3 \approx 0{,}67.

  • Das funktioniert auch für stetiges xx, wichtig ist nur die Differenz Δx\Delta x: Erhöht man xx um Δx\Delta x, multiplizieren sich die Odds mit ew1Δxe^{w_1\Delta x}, egal bei welchem xx man startet.
  • Bei mehreren Variablen gilt die Interpretation nur, wenn alle anderen konstant gehalten werden.
Fallstrick: Odds Ratio ist kein Verhältnis von Wahrscheinlichkeiten

Ein Odds Ratio von 1,67 heißt nicht, dass die Wahrscheinlichkeit um den Faktor 1,67 steigt (hier steigt sie von 0,55 auf 0,67, Faktor 1,22). Nur bei kleinen Wahrscheinlichkeiten sind Odds und Wahrscheinlichkeit ungefähr gleich.

Frage der Folie: Welches Vorzeichen hat w1w_1 im Challenger-Beispiel (xx = Temperatur in °F)? Die Ausfallwahrscheinlichkeit sinkt mit steigender Temperatur, die S-Kurve fällt. Also ist w1<0w_1 < 0: Jedes Grad wärmer multipliziert die Odds für einen Defekt mit ew1e^{w_1}, einem Faktor kleiner als 1.

Vergleich: logistische Regression vs. Perceptron​

📄 04_linear_methods_ws26.pdf, Folie 72 zeigt beide auf denselben trennbaren Daten:

PerceptronLogistische Regression
Ausgabenur KlasseWahrscheinlichkeit pp (Farbverlauf im Bild)
VerlustRosenblatt, 0 für jede trennende GeradeKreuzentropie, aus Maximum Likelihood
Lösungirgendeine trennende Gerade, oft knapp an Punkten (Loss 0)eine Gerade, die alle Punkte möglichst sicher richtig hat, liegt typischerweise mittiger zwischen den Klassen
Nicht trennbare Datenkeine Konvergenzfunktioniert, liefert Wahrscheinlichkeiten

In scikit-learn (Notebook perceptron/perceptron.ipynb):

from sklearn.linear_model import LogisticRegression

logreg = LogisticRegression()
logreg.fit(X, y)
logreg.predict_proba(X_new)[:, 1] # Ergänzung: P(Y=1 | x)
logreg.coef_, logreg.intercept_ # Ergänzung: w und b