![]() |
Logistische Regression |
Klassifikation
Binäre Klassifikation: $y \in \{0,1\}$
Beispiele
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.
$\to \infty$ für $h_w(x) \to 1$
$\to \infty$ für $h_w(x) \to 0$
Analytische Lösung für Logistische Regression funktioniert leider nicht
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:
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.
| Vorhergesagt | |||
| Negativ | Positiv | ||
| Wahrheit | Negativ | Richtig Negativ (TN) | Falsch Positiv (FP) |
| Positiv | Falsch Negativ (FN) | Richtig Positiv (TP) | |
| 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
Metriken brauchen Kontext: ELISA HIV Test
Test mit 99.9% Accuracy, 99.9% Recall und 99.9% Specificity.
| Vorhergesagt | ||||
| Summe | Negativ | Positiv | ||
| Wahrheit | Negativ | 81.933.000 | 81.851.067 | 81.933 |
| Positiv | 67.000 | 67 | 66.933 | |
Tradeoff zwischen
$\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.
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.
Beispiel (Wikipedia):
AUROC
(Area under operating characteristic)
Berechne Fläche unter der ROC Kurve
In sklearn: Metrics
Regressionsprobleme
Klassifikationsprobleme