Logistische Regression

Klassifikation

Binäre Klassifikation: $y \in \{0,1\}$

Beispiele

  • Haus ist in der Stadt oder auf dem Land?
  • Tumor ist bösartig oder nicht?
  • Email ist Spam oder nicht?

Können wir das gut mit linearer Regression lösen?

Logistische Regression

Wir verwenden eine "Aktivierungsfunktion" $g$: \[ h_w(x) = g(\underbrace{w \cdot \phi(x)}_\text{Lineare Regression}) = \frac{1}{1+e^{- w \cdot \phi(x)}} \\ \]

$g(z) = \frac{1}{1+e^{- z}}$

"Sigmoid" oder "logistische Funktion"

Was sollte hier die Loss Funktion sein?

Idee: Wenn $y=0$ bestrafe $h$ nahe 1, wenn $y=1$ bestrafe $h$ nahe 0.

Cross Entropy

$$\text{Loss}(x,y,w) =\\ - y \log(h_w(x)) - (1-y) \log(1 - h_w(x))$$

Logarithmus geht Richtung $-\infty$ je näher wir an 0 kommen.

  • Für $y=0$:
    $\text{Loss}(x,y,w) = - \log(1-h_w(x))$

    $\to \infty$ für $h_w(x) \to 1$

  • Analog für $y=1$:
    $\text{Loss}(x,y,w) = - \log(h_w(x))$

    $\to \infty$ für $h_w(x) \to 0$

    Analytische Lösung für Logistische Regression funktioniert leider nicht

  • Option 1: Iterativ mit Newton Verfahren ("kleiner" Datensatz)
  • Option 2: SGD ("Big Data")

In sklearn (Option 1):
sklearn.linear_model.LogisticRegression.html

Mit SGD (Option 2):
sklearn.linear_model.SGDClassifier

Wenn wir Gewichte $w$ haben, wie interpretieren wir hier die Ergebnisse?

    Wir wollen das Ergebnis als Wahrscheinlichkeit interpretieren:

  • $P(y = 1 | x) = h_w(x)$
  • $P(y = 0 | x) = 1-h_w(x)$

Cross Entropy Loss + Sigmoid Aktivierungsfunktion liefert Maximum Likelihood Schätzer für diese Interpretation.

Cross Entropy ist in der Interpretation eher unhandlich

Informationstheorie: Wie viel "Information" steckt in den Daten?

Wir wollen besser interpretierbare Metriken.

Confusion Matrix

Vorhergesagt
Positiv Negativ
Wahrheit Positiv Richtig Positiv (TP) Falsch Negativ (FN)
Negativ Falsch Positiv (FP) Richtig Negativ (TN)
Falsch Negativ Falsch Positiv
"Kein Hot Dog" "Hot Dog"


Accuracy

\[ \frac{\text{TP+TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} \]

Welcher Anteil der Vorhersagen waren korrekt?

Recall
(True Positive Rate)

\[ \frac{\text{TP}}{\text{TP} + \text{FN}} \]

Welchen Anteil der echt positiven Beispiele haben wir gefunden?

Specificity
(True Negative Rate)

\[ \frac{\text{TN}}{\text{TN} + \text{FP}} \]

Welchen Anteil der echt negativen Beispiele haben wir gefunden?

Fall-out
(False Positive Rate)

\[ \frac{\text{FP}}{\text{TN} + \text{FP}} \]

Welchen Anteil der echt negativen Beispiele haben wir falsch vorhergesagt?

Precision

\[ \frac{\text{TP}}{\text{TP} + \text{FP}} \]

Welcher Anteil der positiven Vorhersagen waren korrekt?

Eine Metrik alleine kann täuschen

  • Wir sagen immer "positiv" voraus: Recall ist 100%
  • Wir sagen immer "negativ" voraus: Specificity ist 100% (und Precision ist undefiniert)
  • Wenn 98% der Beispiele negativ sind, bekommen wir 98% Accuracy wenn wir immer "negativ" vorhersagen

Metriken brauchen Kontext: ELISA HIV Test

Test mit 99.9% Accuracy, 99.9% Recall und 99.9% Specificity.

Vorhergesagt
Summe Positiv Negativ
Wahrheit Positiv 67.000 66.933 67
Negativ 81.933.000 81.933 81.851.067

https://de.wikipedia.org/w/index.php?title=Beurteilung_eines_bin%C3%A4ren_Klassifikators&oldid=223284084

Tradeoff zwischen

  • Recall ($\frac{\text{TP}}{\text{TP} + \text{FN}}$)
  • Specificity ($\frac{\text{TN}}{\text{TN} + \text{FP}}$) / Precision ($\frac{\text{TP}}{\text{TP} + \text{FP}}$)

$\text{F}_1$ Score

\[ \frac{2 \cdot \text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} \]

Harmonisches Mittel aus Precision und Recall

Oft haben wir den Trade-off selber in der Hand.

Logistischen Regression: $h_w(x)$ nicht binär, sondern eine Wahrscheinlichkeit von 0 bis 1.

Wir müssen den Threshold bestimmen, ab dem wir "positiv" vorhersagen wollen.

  • Hoher Threshold → Bessere Specificity
  • Kleiner Threshold → Besserer Recall

Was wir wollen hängt vom Problem ab.

Beispiel: Spam Filter

Wenn eine Spam Email im Posteingang landet ist das weniger schlimm, als wenn eine richtige Email als Spam klassifiziert wird.

Specificity wichtiger als Recall

Receiver operating characteristic (ROC)

Für alle Thresholds plotte Recall gegen Fall-out.

https://commons.wikimedia.org/wiki/File:Roc_curve.svg

Beispiel (Wikipedia):

https://commons.wikimedia.org/wiki/File:Roccurves.png

AUROC
(Area under operating characteristic)

Berechne Fläche unter der ROC Kurve

  • 1: Perfekter Classifier
  • 0.5: Münzwurf
  • 0: Jedes einzelne Beispiel falsch.

In sklearn: Metrics

Regressionsprobleme

  • $y$ sind reellwertig
  • Lineare Regression
  • Loss Funktion
    • Squared Loss
    • Absolute Loss
  • Metriken
    • Root Mean Squared Error (RMSE)
    • R2 Score

Klassifikationsprobleme

  • $y$ sind binär
  • Logistische Regression
  • Loss Funktion
    • Cross Entropy Loss
  • Metriken
    • Confusion Matrix
    • Accuracy
    • Recall, Specificity, Fall-out, Precision
    • $F_1$ Score
    • ROC, auROC