# Kreuzvalidierungsverfahren

Kreuzvalidierungsverfahren sind auf Resampling basierende Testverfahren der Statistik, die z. B. im Data-Mining die zuverlässige Bewertung von Maschinen gelernten Algorithmen erlauben. Es wird unterschieden zwischen der einfachen Kreuzvalidierung, der stratifizierten Kreuzvalidierung und der Leave-One-Out-Kreuzvalidierung.

## Problemstellung

Um einen verlässlichen Wert für die Anpassungsgüte (Qualität) eines statistischen Modells zu bekommen, gibt es in der Statistik verschiedene Verfahren. In der Regel werden dafür Kennzahlen benutzt, z. B. das (korrigierte) Bestimmtheitsmaß in der linearen Regression oder das Akaike- oder Bayes-Informationskriterium bei Modellen basierend auf der Maximum-Likelihood-Methode. Zum Teil basieren solche Kennzahlen auf asymptotischer Theorie, d. h., sie können nur für große Stichprobenumfänge verlässlich geschätzt werden. Ihre Schätzung bei kleinen Stichprobenumfängen ist daher problematisch. Oft ist auch die exakte Zahl der zu schätzenden Parameter, die für die Kennzahl benötigt wird, nicht berechenbar; ein Beispiel hierfür ist die nichtparametrische Statistik.
Des Weiteren gibt es das Problem, dass zu hoch parametrisierte Modelle dazu tendieren, sich zu stark an die Daten anzupassen. Ein Beispiel ist die Polynominterpolation. Hat man $N$ Beobachtungen $(x_{i},y_{i})$, kann man ein Interpolationspolynom $y(x)=b_{0}+b_{1}x+...+b_{N-1}x^{N-1}$ bestimmen, so dass $y(x_{i})=y_{i}$ für alle $i$ gilt. Zwischen den Beobachtungspunkten werden die Daten jedoch sehr schlecht interpoliert (sogenannte Überanpassung). Würde man nun den Fehler (in-sample error) berechnen, so würde man die Modellqualität überschätzen.
Um den zuvor genannten Problemen zu entgehen, wird der Datensatz in zwei Teile geteilt. Mit dem ersten Teil werden nur die Modellparameter geschätzt und auf Basis des zweiten Teils wird der Modellfehler berechnet (out-of-sample error). Die Verallgemeinerung dieses Verfahrens sind die Kreuzvalidierungsverfahren.

## Einfache Kreuzvalidierung

Die zur Verfügung stehende Datenmenge, bestehend aus $N$ Elementen, wird in $k\leq N$ möglichst gleich große Teilmengen $T_{1},...,T_{k}$ aufgeteilt. Nun werden $k$ Testdurchläufe gestartet, bei denen die jeweils $i$-te Teilmenge $T_{i}$ als Testmenge und die verbleibenden $k-1$ Teilmengen $\{T_{1},...,T_{k}\}\setminus \{T_{i}\}$ als Trainingsmengen verwendet werden.
Die Gesamtfehlerquote errechnet sich als Durchschnitt aus den Einzelfehlerquoten der $k$ Einzeldurchläufe. Diese Testmethode nennt man k-fache Kreuzvalidierung.
Werden die Trainings- und Testmengen durch Ziehen ohne Zurücklegen erzeugt – dann spricht man von Monte Carlo Cross-Validation (bzw. shuffle split cross-validation).
Der Kreuzvalidierungs-Fehler (z. B. MSE) wird dann mit folgendem gewichteten Mittelwert berechnet: ${\hat {MSE}}_{CV}={\frac {1}{k}}\sum _{i=1}^{k}{\hat {MSE}}_{k}$, mit ${\hat {MSE}}_{k}$ der quadratische Fehler im k-ten Holdout.

## Stratifizierte Kreuzvalidierung

Aufbauend auf der einfachen k-fachen Kreuzvalidierung, achtet die k-fache stratifizierte Kreuzvalidierung darauf, dass jede der k Teilmengen eine annähernd gleiche Verteilung besitzt. Dadurch wird die Varianz der Abschätzung verringert, siehe Varianzreduktion.

## Leave-One-Out-Kreuzvalidierung

Bei der Leave-One-Out-Kreuzvalidierung (engl. leave-one-out cross validation LOO-CV) handelt es sich um einen Spezialfall der k-fachen Kreuzvalidierung, bei der k = N (N = Anzahl der Elemente). Somit werden N Durchläufe gestartet und deren Einzelfehlerwerte ergeben als Mittelwert die Gesamtfehlerquote.
Ein Nachteil dieser Methode ist, dass eine Stratifizierung der Teilmengen, wie bei der stratifizierten Kreuzvalidierung, nicht mehr möglich ist. Dadurch kann es in Extremfällen dazu kommen, dass dieses Testverfahren falsche Fehlerwerte liefert. Beispiel: Eine vollständig zufällige Datenmenge bei gleichmäßiger Verteilung und nur zwei Klassen würde zu einem LOO-CV mit einer Genauigkeit von etwa 0 führen. Aus N Elementen werden zum Training N / 2 Elemente der einen Klasse und N / 2 − 1 Elemente der anderen Klasse verwendet. Die wahre Fehlerquote betrüge jeweils 50 %. Da der Klassifikator immer den Gegenpart zur Mehrheitsklasse der Testdaten prognostiziert, liefert der Test für jede Klasse die falsche Vorhersage. Die daraus ermittelte Gesamtfehlerquote beträgt also 100 %.
Ein weiterer Nachteil ist, dass die Anzahl der Trainingsläufe zu einem sehr hohen Rechenaufwand führt.

## Gruppen-Kreuzvalidierung

Bei der Gruppen-Kreuzvalidierung (engl. Group cross-validation G-CV oder leave-one-cluster-out cross validation LOCO-CV) handelt es sich um eine Art der Kreuzvalidierung, bei der die Daten mit Hilfe von Domänenwissen in Cluster eingeteilt werden. Danach werden die Daten auf einem oder mehreren dieser Cluster trainiert und anschließend auf einem separaten Cluster getestet. So kann sichergestellt werden, dass die Vorhersagen eines Modells eine Allgemeingültigkeit besitzen und nicht auf einen bestimmten Bereich in der Domäne beschränkt sind. Außerdem kann durch die Gruppen-Kreuzvalidierung vermieden werden, dass das Modell in einem Bereich zu optimistisch ist.
Gruppen-Kreuzvalidierung wird besonders beim Einsatz von Künstlicher Intelligenz in der Materialwissenschaft verwendet. Dabei werden die untersuchten Materialien nach ihren chemischen Strukturräumen in Cluster eingeteilt. Dies ist besonders wichtig, da bestimmte Korrelationen in den Daten in einem Strukturraum sehr präsent sein können, aber nicht auf andere Räume angewendet werden können.

## Wiederholtes zufälliges Subsampling

Beim wiederholten zufälligen Subsampling (repeated random sub-sampling) werden wiederholt zufällige Unterstichproben gezogen. Ein Beispielalgorithmus, welcher Subsampling nutzt, ist der RANSAC-Algorithmus.

## Holdout-Methode

Der typische Train-Test-Split eines Datensatzes in einen Trainingsdatensatz und einen Testdatensatz kann als einfachste Form von Kreuzvalidierung angesehen werden. Durch Anwenden der Holdout-Methode kann Überanpassung erkannt werden. Bei der Holdout-Methode ist zu beachten, dass sowohl der Trainings- als auch der Testdatensatz dieselbe Verteilung repräsentieren. Pseudoreplikation aufgrund hoher Autokorrelation der Daten ist beim Test-Train-Split zu berücksichtigen.

## Anwendung

Trainiert man ein Modell auf einem Trainingsdatensatz ${\mathcal {D}}$ und bestimmt den empirischen Mittelwert der Verlustfunktion L (vgl. empirische Risikominimierung) auf Test-Daten $\{x_{i},y_{i}\}$, so wird der bedingte Erwartungswert des Testfehlers ${\hat {E}}_{\{x_{i},y_{i}\}}[L({\hat {y}}(x_{i}),y_{i})|{\mathcal {D}}]$ geschätzt. Dies ist der auf den Trainingsdatensatz bedingte Testfehler. Cross-Validation (und auch Bootstrapping-Verfahren) können benutzt werden um den erwarteten Testfehler zu schätzen, indem die Trainingsdatensätze (Und Testdatensätze) durch Resampling neu erzeugt werden: ${\hat {E}}_{\mathcal {D}}[{\hat {E}}_{\{x_{i},y_{i}\}}[L({\hat {y}}(x_{i}),y_{i})|{\mathcal {D}}]]$