Logistic regression
Hypothesis
Wertebereich sollte hier liegen: $0 \leq h_\theta(x) \leq 1$
$h_\theta(x) = g(\theta^Tx)$
Logistic/Sigmoid function $g(z) = \frac{1}{1+e^{-z}}$
$h_\theta(x)$: Geschätze Wahrscheinlichkeit, dass y = 1 is für Input x.
$h_\theta(x) = P(y=1 | x; \theta)$
$1 = P(y=1 | x; \theta) + P(y=0 | x; \theta)$
Cost function
How to choose parameters \theta?
$J(\theta) = \frac{1}{m} \sum_{i=1}^m Cost(h_\theta(x),y)$
$Cost(h_\theta(x),y) = 1/2 (h_\theta(x)-y)^2$ nicht konvex bei logistischer Regression!
$Cost(h_\theta(x),y) = \begin{cases} -log(h_\theta(x))&\text{if y = 1}\\-log(1 - h_\theta(x))&\text{if y = 0}\end{cases}$
Für y=1: Wenn y = 1, dann sind Kosten 0, sonst werden sie größer, je weiter entfernt. Für y=0: analog.
Vereinfacht:
$Cost(h_\theta(x),y) = -y * log(h_\theta(x)) - (1-y) * log(1 - h_\theta(x))$
Kann durch Maximum Likelihood Estimation hergeleitet werden.
Gradient Descent
Ähnlicher Algorithmus wie bei linearer Regression, aber andere Hypothesis.
Optimierung
Neben Gradient Descent:
- Conjugate gradient
- BFGS
- L-BFGS
Vorteile: Alpha muss nicht gewählt werden, oft schneller. Nachteil: Komplex.
Octave: Kostenfunktion definieren, die Kosten und Gradienten berechnet und an entsprechende Methode übergeben.
Multiclass classification
One vs all / one vs rest Classification
Z.B. aus 3-Klassenproblem 3 binäre Probleme erzeugen. $h_\theta(x)^{(i)} = P(y=i|x;\theta); i=1,2,3$
Dann wähle Klasse i, die $\max_i h_\theta^{(i)}(x)$
Adressing Overfitting
- Feature reduction
- Manual selection
- Model selection algo
- Regularization
- Alle Features behalten, aber Größe/Werte der Parameter $\theta_j$ verändern.
- Funktioniert gut, wenn es viele Features gibt, die ein wenig zur Vorhersage von y beitragen.
Regularization
$min \dots + 1000 \theta_3^2 + 1000 \theta_4^2$
Kleine Paremeter führen zu “einfacherer” Hypothesis.
$min \dots + \lambda \sum_{i=1}^n \theta_j^2$
Gradient descent (Linear Regression)
$\dots + \lambda / m \theta_j$
$\theta_j := \theta_j (1-\alpha \frac{\lambda}{m}) - \alpha \frac{1}{m} \sum^m_{i=1} (h_\theta(x^{(i)} - y^{(i)}) x_j^{(i)}$
Normalengleichung (Linear Regression)
$$(x^T X + \lambda \begin{bmatrix} 0 & \dots & \dots & 0 \\ \vdots & 1 & 0 & \vdots \\ \vdots & 0 & \ddots & 0 \\ 0 & \dots & 0 & 1 \end{bmatrix})^{-1} X^T y$$
Gradient descent (Logistic Regression)
Unterscheide $\theta_0$ und $\theta_j$!
Für $\theta_j$: $\dots + \frac{\lambda}{m} \theta_j$