====== 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$