Principal Component Analysis
Problemformulierung
$x \in \mathbb{R}^2$
Finden einer Projektion mit minimalem Projektionsfehler.
Feature Scaleing erforderlich.
Für 2 Dimensionen: Finde einen Vektor $u^{(1)} \in \mathbb{R}^n$ auf den Daten projiziert werden, dass der Projektionsfehler minimal wird.
Für k Dimensionen: Finde k Vektoren $u^{(1)}, \dots, u^{(k)}$ auf die Daten projiziert werden, dass der Projektionsfehler minimal wird.
Algorithmus
Berechnung der Kovarianzmatrix: $\Sigma = \frac{1}{m} \sum_{i=1}^n x^{(i)} (x^{(i)})^T = 1/m X^T X$
Berechnung der Eigenvektoren der Matrix $\sigma$:
svd-Funktion: [U, S, V] = svd(Sigma);
$U_{\text{reduce}}$ : k-Spalten der U-Matrix ($n \times n$)
$z = U_{\text{reduce}}^T x$
Parameterwahl (k)
99% der Varianz bleibt erhalten.
$$ \frac{\frac{1}{m} \sum_{i=1}^m || x^{(i)} - x_{\text{approx}}^{(i)} ||^2}{\frac{1}{m} \sum_{i=1}^m || x^{(i)}||^2} \leq 0.01 $$
[U,S,V] mit S als diagonale Matrix.
Für ein k, kann $1-\frac{\sum_{i=1}^k S_{ii}}{\sum_{i=1}^n S_{ii}} \leq 0.01$.
Decompression
$x_\text{approx} = U_\text{reduce} z$