\chapter{Model Selection}%
\label{cha:Model Selection}
Für jedes Problem existiert eine Vielzahl von Lösungsansätzen.
Für jedes Model muss entschieden werden,
wie komplex dieses aufgebaut werden soll.
Die einstellbaren Parameter hängen hierbei vom Algorithmus ab:
\begin{itemize}
    \item \textbf{Linear Regression:} number of features, regularization coefficient
    \item \textbf{Decision Trees:} maximum depth, number of leaves
    \item \textbf{Neural Networks:} number of layers, number of neurons
    \item \textbf{Support Vector Machine:} which features, regularization
    \item \textbf{Gaussian Processes:} kernel bandwith
\end{itemize}
Die Auswahl des passenden Algorithmus' mit zugehörigen Parametern wird als Model Selection Problem bezeichnet.
Es ist eines der fundamentalsten Probleme des Machine Learnings.

\section{True Risk vs. Empirical Risk}%
\label{sec:True Risk vs. Empirical Risk}
\includegraphics[width=.7\textwidth]{true_vs_empirical_risk.png}

\subsection{Bias"~Variance Decomposition}%
\label{sub:Bias"~Variance Decomposition}
Expected Loss = True Risk\\
\includegraphics[width=.9\textwidth]{bias-variance_decomposition.png}

\subsubsection{Understanding True Risk}%
\label{ssub:Understanding True Risk}
Um den Zusammenhang von Bias"~Variance Decomposition und True Risk zu verstehen,
wird die Zerteilung im folgenden am Beispiel der Regression gezeigt.
\begin{itemize}
    \item Die Eingangsdaten ergeben sich aus der realen Basisfunktion $f(\bm{x})$ und der zufälligen Störung $\epsilon$
        $$y=f(\bm{x}) + \epsilon,\qquad\epsilon\sim\mathcal{N}(0,\nomeq{variance})$$
    \item Der Expected Loss $R(\hat{f}_{D_n})$ der auf den Daten $D_n$ trainierten Funktion $\hat{f}_{D_n}$ ist gegeben durch:
        \begin{align} \label{eq:bias-variance_decomposition}
            R(\hat{f}_{D_n})&=\mathbb{E}_{D_n}\left[\mathbb{E}_{x,y}\left[(\hat{f}_{D_n}(\bm{x})-y)^2\right]\right]\\
                            &=\underbrace{\mathbb{E}_{D_n}\left[\mathbb{E}_{x,y}\left[(\hat{f}_{D_n}(\bm{x})-\hat{f}_*(\bm x))^2\right]\right]}_{\text{Variance}} 
                            + \underbrace{\mathbb{E}_{\bm x}\left[(\hat{f}_{D_n}(\bm{x})-\hat{f}_*(\bm x))^2\right]}_{\text{Bias}^2} + \underbrace{\nomeq{variance}}_{\text{Noise}}
        \end{align}
        Hierbei ist $\hat{f}_*(\bm x) = \mathbb{E}_{D_n}[\hat{f}_{D_n}(\bm x)]$ der durchschnittliche Erwartungswert über alle möglichen Datensätze der Größe $n$.
        Dies entspricht der bestmöglichen Approximation,
        die mit der verwendeten Funktion $f$ möglich ist.
\end{itemize}

\section{Over"~ vs. Underfitting}%
\label{sec:Over- vs. Underfitting}
\includegraphics[width=.9\textwidth]{over_vs_underfitting.png}

\section{Bias"~Variance Trade"=off}%
\label{sec:Bias-Variance Trade-off}
\includegraphics[width=.9\textwidth]{bias-variance_trade-off.png}

\section{Evaluation Methods}%
\label{sec:Evaluation Methods}
Wie in \cref{sec:Over- vs. Underfitting} und \cref{sec:True Risk vs. Empirical Risk} gezeigt wurde,
ist die Empirical Risk kein guter Maßstab für die Bewertung von Modellen.
Daher werden andere Methoden benötigt um Modelle zu bewerten.

\subsection{Hold"=out Mehtod}%
\label{sub:Hold-out Mehtod}
Bei der Hold"=out Methode werden die gegebenen Datenpunkte in einen Trainings"~ und einen Validierungsdatensatz unterteilt.
Letzterer Wird dafür genutzt,
die trainierten Modelle zu bewerten.
\begin{mybox}
   \textbf{\large Hold"=out Procedure}\\
   gegeben: ein Datensatz $D=\{(\bm{x}_i,y_i)\}_{i=1}^n$ bestehend aus $n$ Datenpunkten
   \begin{enumerate}
       \item Datensatz in einen Trainingsdatensatz $D_T$ und einen Validierungsdatensatz $D_V$ aufsplitten:
           $$D_T = \{(\bm{x}_i,y_i)\}_{i=1}^m\qquad D_V=\{(\bm{x}_i,y_i)\}_{i=m+1}^n$$
       \item $\hat{f}_{D_T}$ für jede Modell-Klasse $M$ ermitteln
       \item $hat{f}_{D_T}$ auf dem Validierungsdatensatz evaluieren. z.B.:
           $$\nomeq{mean_squared_error}(D_V,\hat{f}_{D_T} = \frac{1}{n-m}\sum_{i=m+1}^n (\hat{f}_{D_T}(\bm{x}_i) - y_i)^2$$
       \item Modell mit dem besten Validation Loss wählen
   \end{enumerate}
\end{mybox}
Diese Methode hat allerdings zwei Nachteile:
\begin{enumerate}
    \item ein Teil der Daten wird nicht genutzt (nur zur Validierung)
    \item \say{unglückliche} Trainings"~Valiedierung Aufteilung der Daten kann das Ergebnis verfälschen (z.B. bei sortierten Datenpunkten)
\end{enumerate}

\subsection{Cross Validation}%
\label{sub:Cross Validation}
Um die Nachteile der \nameref{sub:Hold-out Mehtod} zu umgehen wird meist die Cross Validation verwendet
\begin{mybox}
    \begin{wrapfigure}{r}{.5\linewidth}
        \centering
        \includegraphics[width=.9\linewidth]{cross_validation.png}
        \caption{Cross Validation}
        \label{fig:cross_validation}
    \end{wrapfigure}

   \textbf{\large Cross Validation Procedure}\\
   gegeben: ein Datensatz $D=\{(\bm{x}_i,y_i)\}_{i=1}^n$ bestehend aus $n$ Datenpunkten
   \begin{enumerate}
       \item Datensatz in $k$ Partitionen unterteilen
           $$D_1 = \{(\bm{x}_i,y_i)\}_{i=1}^{\frac{n}{k}}, D_2=\{(\bm{x}_i,y_i)\}_{i=\frac{n}{k}+1}^{2 \frac{n}{k}}, \dots$$
       \item Wiederholtes Anwenden der \nameref{sub:Hold-out Mehtod} auf den Datensatz,
           wobei immer eine andere Partition als Validierungsdatensatz dient
   \end{enumerate}
\end{mybox}

\subsubsection{Sonderformen der Cross Validation}%
\label{ssub:Sonderformen der Cross Validation}
    \paragraph{\glsxtrfull{LLO} Cross Validation}%
    \label{par:LLO Cross Validation}
    Sonderform, bei der $k=n$,
    wodurch es genau so viele Durchläufe wie Datenpunkte gibt
    und immer ein Datenpunkt zur Validierung genutzt wird.

    \paragraph{Random sub-sampling}%
    \label{par:Random sub-sampling}
    Sonderform, bei der eine Zufällige Teilmenge $\alpha\cdot n$ ($0<\alpha<1$) aus den gegebenen Daten als Validierungsdatensatz verwendet wird.
    Oft wird dieses Verfahren mehrmals in folge durchgeführt.



