\chapter{Dimensionality Reduction}%
\label{cha:Dimensionality Reduction}
Das Ziel der Dimensionality Reduction ist es,
einen Datensatz mit vielen Features (hohe Dimensionalität) zu vereinfachen.
Dies ist vor allem dann hilfreich,
wenn die Daten visualisiert werden.
Zudem ist es ein guter Preprocessing Schritt für andere ML-Algorihmen.
Ein Beispiel hierfür ist die \dref{cha:Linear Regression},
bei welcher eine Invertierung einer Matrix von nöten ist,
deren Größe von der Dimension der Datenpunkte abhängt.
Ist diese Dimension reduziert ergibt sich daraus logischerweise ein geringerer Rechenaufwand.

\section{Linear Dimensionality Reduction}%
\label{sec:Linear Dimensionality Reduction}
Bei der Linear Dimensionality Reduction wird versucht,
Features zu entfernen,
indem diese durch Linearkombinationen anderer Features ersetzt\slash\,approximiert werden.

Es ist also das Ziel ein lineares Mapping zu finden,
dass einen Datenpunkt $\bm x_i\in D$ auf einen neuen Datenpunkt $\bm z_i\in M$ abbildet ($D>>M$)
\begin{equation}
    \label{eq:linear_dimensionality_reduction}
    \bm z_i = \bm W \bm x_i\text{ mit }\bm W \in \mathbb{R}^{M\times D}
\end{equation}
Wir wissen,
dass sich jeder Vektor $\bm x$ in Bezug zu einem Orthonormal Basis Coordinate System definieren lässt.
Hierbei ergibt sich der Vektor durch
\begin{equation} \label{eq:orthonormal_basis_representation}
    \bm x \sum_{i=1}^D z_i\bm u_i
\end{equation}
\begin{itemize}
    \item $\bm u_i$  sind Basisvektoren
    \item $\bm u_i^T\bm u_j = \nomeq{dirac_delta}_{ij}$
    \item Das Produkt von zwei Basisvektoren ist 0
    \item die Norm eines Basisvektors ist 1
    \item $z_i$ ist der Scalar Coefficient und kann durch die Projektion von $\bm x$ auf den jeweiligen Basisvektor ermittelt werden
        \begin{equation} \label{eq:scalar_coefficient}
            z_i = \bm u_i^T\bm x 
        \end{equation}
\end{itemize}
Um die Dimensionalität zu reduzieren ist es nun entscheidend,
nur die Basisvektoren zu verwenden,
die den geringsten Einfluss auf $\bm x$ haben
\begin{equation} \label{eq:linear_dimensionality_reduction_decomposition}
    \bm x = \underbrace{\sum_{i=1}^M z_i\bm u_i}_{\tilde{\bm x}\approx\bm x} + \underbrace{\sum_{j=M+1}^D z_j\bm u_j}_{\text{wird gestrichen}}
\end{equation}
Anders gesagt,
es wird die Teilmenge von Basisvektoren gesucht,
die den geringsten Reproduction Error haben.\\(hier: Mean Squared Reproduction Error)
\begin{equation} \label{eq:mean_squared_reproduction_error}
    \argmin_{\bm u_1,\dots,\bm u_M} E(\bm u_1,\dots,\bm u_M) = \argmin_{\bm u_1,\dots,\bm u_M}\sum_{i=1}^N \|\bm x_i - \tilde{\bm x_i}\|^2
\end{equation}

\section{Minimizing the Error}%
\label{sec:Minimizing the Error}
Für einen einzelnen Basisvektor $\bm u_i$ ist lässt sich der Error durch
\begin{align} \label{eq:single_basis_vector_error}
    E(\bm u_1)  &= \sum_{i=1}^N \| \bm x_i - \tilde{\bm x_i} \|^2 \\
                &= \dots\text{(Herleitung: \cref{sec:Herleitung: Dimensionality Reduction: Minimizing the Error}) } \\
                &= \sum_{i=1}^N\bm x_i^T\bm x_i - z_{i1}^2\\
                &\Rightarrow \argmin_{\bm u_1}E(\bm u_1) 
                    = \argmax_{\bm u_1}\sum_{i=1}^N z_{i1}^2 
                    = \argmax_{\bm u_1} \sum_{i=1}^N(\bm u_1^T\bm x_i)^2
\end{align}
Hierdurch wird gezeigt,
dass die Minimierung des Errors,
wenn $\nomeq{mean} = 0$,
gleichbedeutend mit der Maximierung der Varianz der Projektion ist.
$\nomeq{mean}=0$ kann sichergestellt werden,
indem $\bm x$ durch $\overline{\bm x}_i = \bm x_i -\bm\mu$ ersetzt wird.

\subsection{\texorpdfstring{\glsxtrfull{PCA}}{\glsfmtfull{PCA}}}%
\label{sub:PCA}
\begin{mybox}
   \textbf{\Large \glsxtrfull{PCA}}\\
   \begin{enumerate}
       \item Daten zentrieren (Durchschnitt berechnen und von den Daten subtrahieren)
       \item \noms{covariance} errechnen, in Eigendekomposition zerlegen und die $M$ größten Eigenwerte und zugehörigen Eigenvektoren ermitteln
       \item Die ermittelten Eigenvektoren sind die Basisvektoren der neuen Darstellung
       \item Projektion mithilfe von $\bm W = \begin{bmatrix} \bm u_1 & \cdots & \bm u_M \end{bmatrix}$
           \begin{itemize}
               \item zur kleinen Dimension: \tabto{3cm}$\bm z_i = \bm W^T(\bm x_i - \bm\mu)$
               \item zur großen Dimension: \tabto{3cm}$\bm \tilde{\bm x}_i = \bm\mu + \bm W\bm z_i$
           \end{itemize}
   \end{enumerate}
\end{mybox}
Das Verfahren zur Ermittlung der Basisvektoren welche die Varianz Maximieren wird als \gls{PCA} bezeichnet
und ist ein sehr bekannter Algorithmus,
welcher vor allem zur Datenvorverarbeitung für andere ML-Algorithmen verwendet wird.
Der erste Basisvektor,
welcher auch als \say{first principal direction} bezeichnet wird,
ist definiert als
\begin{equation} \label{eq:PCA}
    \bm u_1 = \argmax_{\bm u}\frac{1}{N}\sum_{i=1}^N (\bm u^T \underbrace{(\bm x_i -\bm\mu)}_{\overline{\bm x}_i})^2
\end{equation}
Die \say{second principal direction} ist der Basisvektor,
welcher als orthogonales Komplement des ersten Basisvektor die Varianz maximiert.

Das Maximierungsproblem kann in eine \dref{cha:Constraint Optimization} umgeschrieben werden (Herleitung: \cref{sec:Herleitung: PCA: Maximierungsproblem in Matrix-Schreibweise}).
\begin{equation} \label{eq:PCA_constrained_optimization}
    \bm u_1 = \argmax_{\bm u} \bm u^T\nomeq{covariance}\bm u
\end{equation}
Mithilfe der Lagrangian Optimization (\ref{sec:Lagrangian Multipliers}) ergibt sich hieraus der Optimale Zustand für $\bm u$
\begin{equation} \label{eq:PCA_optimal_condition}
    \nomeq{covariance}\bm u  = \lambda\bm u
\end{equation}
Hierbei handelt sich um ein Eigenwertproblem,
bei dem der der größte Eigenwert die maximale Varianz und der zugehörige Eigenvektor (\cref{sec:Eigenwerte und Eigenvektoren}) den Basisvektor mit der maximalen Varianz vorgibt.
Alle Eigenwerte $\lambda_k\approx 0$ sind hierbei die Dimensionen,
die ohne signifikante Änderung der Daten weggelassen werden können.\\
(Annahme: nach Größe sortierte Eigenwerte und $k>M$)
\begin{equation} \label{eq:PCA_solution}
    \bm x_i - \bm\mu = \underbrace{\sum_{j=1}^M z_{ij}\bm u_j}_{\tilde{\bm x}} + \underbrace{\sum_{j=M+1}^D z_{ij}\bm u_j}_{\approx 0}
    \Rightarrow \bm x_i\approx \bm\mu + \sum_{j=1}^M z_{ij}\bm u_j
\end{equation}
Die Schwelle $M$ kann hierbei Wahlweise durch Ausprobieren oder durch eine Schwelle für die minimale Varianz (z.B. $\eta = 0.9$) gewählt werden.
\begin{equation} \label{eq:M_selection}
    \text{wähle $M$, sodass }\sum_{i=1}^M \lambda_i = \eta\sum_{i=1}^D\lambda_i
\end{equation}

\subsubsection{Anwendungsbeispiele}%
\label{ssub:PCA:Anwendungsbeispiele}
siehe \cref{sec:Anwendungsbeispiele: PCA}
