Was ist Kreuzvalidierung? Vergleich von Modellen für maschinelles Lernen
Veröffentlicht: 2021-07-21Kreuzvalidierung ist ein unschätzbares Werkzeug für Data Scientists.
Es ist nützlich, um genauer zu bauen maschinelles Lernen Modelle und Bewertung, wie gut sie auf einem unabhängigen Testdatensatz funktionieren.
Die Kreuzvalidierung ist einfach zu verstehen und zu implementieren, was sie zu einer idealen Methode macht, um die Vorhersagefähigkeiten (oder Fähigkeiten) verschiedener Modelle zu vergleichen und das beste auszuwählen. Es ist von Vorteil, wenn die verfügbare Datenmenge begrenzt ist, und ist eine großartige Möglichkeit, um zu überprüfen, wie ein Vorhersagemodell in der Praxis funktioniert.
Was ist Kreuzvalidierung?
Kreuzvalidierung (CV) ist eine Technik, mit der ein maschinelles Lernmodell bewertet und seine Leistung (oder Genauigkeit) getestet wird. Es beinhaltet das Reservieren einer bestimmten Stichprobe eines Datensatzes, auf dem das Modell nicht trainiert ist. Später wird das Modell an dieser Stichprobe getestet, um es zu evaluieren.
Kreuzvalidierung wird verwendet, um ein Modell vor Überanpassung zu schützen, insbesondere wenn die verfügbare Datenmenge begrenzt ist. Es ist auch als Rotationsschätzung oder Out-of-Sample-Testing bekannt und wird hauptsächlich in Umgebungen verwendet, in denen das Ziel des Modells die Vorhersage ist.
Hast Du gewusst? Ein Modell gilt als „überangepasst“, wenn es die Trainingsdaten so gut modelliert, dass es seine Leistung bei neuen Daten negativ beeinflusst.
Dieses Resampling-Verfahren wird auch verwendet, um verschiedene Modelle für maschinelles Lernen zu vergleichen und festzustellen, wie gut sie zur Lösung eines bestimmten Problems funktionieren. Mit anderen Worten, die Kreuzvalidierung ist eine Methode zur Bewertung der Fähigkeiten von Modellen für maschinelles Lernen.
Einfach ausgedrückt, wird bei der Kreuzvalidierung die ursprüngliche Datenstichprobe zufällig in mehrere Teilmengen aufgeteilt. Das Modell für maschinelles Lernen trainiert alle Teilmengen außer einer. Nach dem Training wird das Modell getestet, indem Vorhersagen für die verbleibende Teilmenge getroffen werden.
In vielen Fällen werden mehrere Kreuzvalidierungsrunden unter Verwendung verschiedener Teilmengen durchgeführt, und ihre Ergebnisse werden gemittelt, um zu bestimmen, welches Modell ein guter Prädiktor ist.
Warum ist Kreuzvalidierung wichtig?
Kreuzvalidierung ist entscheidend, wenn die verfügbare Datenmenge begrenzt ist.
Angenommen, Sie müssen die Wahrscheinlichkeit vorhersagen, dass ein Fahrradreifen platt wird. Dazu haben Sie Daten zu den vorhandenen Reifen gesammelt: das Alter des Reifens, die zurückgelegten Kilometer, das Gewicht des Fahrers und ob er schon einmal platt war.
Um ein Vorhersagemodell zu erstellen, verwenden Sie diese (historischen) Daten. Es gibt zwei Dinge, die Sie mit diesen Daten tun müssen – den Algorithmus trainieren und das Modell testen .
Hast Du gewusst? Beim maschinellen Lernen sind ein Algorithmus und ein Modell nicht dasselbe. Ein Modell ist das, was vom maschinellen Lernalgorithmus gelernt wird.
Da Ihnen nur eine begrenzte Datenmenge zur Verfügung steht, wäre es naiv, alle Daten zum Trainieren des Algorithmus zu verwenden. Wenn Sie dies tun, hätten Sie keine Daten mehr, um das Modell zu testen oder zu bewerten.
Die Wiederverwendung des Trainingssets als Testset ist keine gute Idee, da wir die Genauigkeit des Modells anhand von Daten bewerten müssen, mit denen es nicht trainiert wurde. Das liegt daran, dass das Hauptziel hinter dem Training darin besteht, das Modell für die Arbeit mit realen Daten vorzubereiten. Und es ist unwahrscheinlich, dass Ihr Trainingsdatensatz alle möglichen Datenpunkte enthält, auf die das Modell jemals stoßen wird.
Eine bessere Idee wäre, die ersten 75 Prozent (drei Blöcke) der Daten als Trainingsdatensatz und die letzten 25 Prozent (ein Block) als Testdatensatz zu verwenden . Auf diese Weise können Sie vergleichen, wie gut verschiedene Algorithmen die Testdaten kategorisiert haben.
Aber woher wissen Sie natürlich, dass es am besten ist, die ersten 75 Prozent der Daten als Trainingsdatensatz und die restlichen 25 Prozent als Testdatensatz zu verwenden?
Stattdessen können Sie die ersten 25 Prozent der Daten zum Testen verwenden; oder Sie können den dritten Datenblock als Testdatensatz und den verbleibenden als Trainingsdatensatz verwenden.
Tipp: Verwenden Sie Software für maschinelles Lernen, um Aufgaben zu automatisieren und genaue Vorhersagen zu treffen.
Als Ergebnis verwendet eine Art der Kreuzvalidierung, die als k-fache Kreuzvalidierung bezeichnet wird, alle (vier) Teile des Datensatzes einzeln als Testdaten und fasst dann die Ergebnisse zusammen.
Bei der Kreuzvalidierung werden beispielsweise die ersten drei Datenblöcke zum Trainieren des Algorithmus und der letzte Block zum Testen des Modells verwendet. Anschließend wird aufgezeichnet, wie gut das Modell mit den Testdaten abgeschnitten hat.
Nach der Aufzeichnung der Leistung oder Genauigkeit verwendet es den 1., 2. und 4. Block der Daten zum Trainieren und den 3. Block zum Testen. Der Prozess wird fortgesetzt, bis alle Blöcke einmal als Testdaten verwendet wurden. Der Durchschnitt aller Ergebnisse wird berechnet, um die Leistung des Modells zu bewerten.
Im obigen Beispiel wurden die Daten in vier Blöcke aufgeteilt. Daher wird diese Kreuzvalidierung als 4-fache Kreuzvalidierung bezeichnet. Wenn es in zehn Blöcke unterteilt würde, wäre es eine 10-fache Kreuzvalidierung .
Kurz gesagt, die Kreuzvalidierung ist nützlich für die Modellauswahl und macht es einfach zu untersuchen, wie gut sich ein Modell auf neue Daten verallgemeinern lässt.
Mit anderen Worten, es ist hilfreich, den Vorhersagefehler eines Modells zu bestimmen. Es wird auch verwendet, um die Leistung oder Genauigkeit verschiedener maschineller Lernmethoden wie Support Vector Machine (SVM), K-nächster Nachbar (KNN), lineare Regression oder logistische Regression zu vergleichen.
Hier sind einige weitere Gründe, warum Data Scientists Kreuzvalidierung lieben:
- Ermöglicht es ihnen, alle Daten zu verwenden, ohne eine Teilmenge zu opfern (gilt nicht für die Holdout-Methode)
- Zeigt die Konsistenz der Daten und des Algorithmus an
- Hilft Overfitting und Underfitting zu vermeiden
Kreuzvalidierung wird auch verwendet, um die abzustimmen Hyperparameter eines maschinellen Lernmodells durch eine Technik, die als Kreuzvalidierung mit randomisierter Rastersuche bezeichnet wird.
Arten der Kreuzvalidierung
Kreuzvalidierungsmethoden können grob in zwei Kategorien eingeteilt werden: erschöpfende und nicht erschöpfende Methoden.
Wie der Name schon sagt, streben erschöpfende Kreuzvalidierungsmethoden danach, auf allen möglichen Wegen zu testen, um die ursprüngliche Datenprobe in einen Trainings- und einen Testsatz aufzuteilen. Andererseits berechnen nicht erschöpfende Verfahren nicht alle Möglichkeiten, die Originaldaten in Trainings- und Bewertungssätze aufzuteilen.
Nachfolgend sind die fünf gängigen Arten der Kreuzvalidierung aufgeführt.
1. Holdout-Methode
Die Holdout-Methode ist einer der grundlegenden Kreuzvalidierungsansätze, bei dem der ursprüngliche Datensatz in zwei Teile geteilt wird – Trainingsdaten und Testdaten. Es handelt sich um eine nicht erschöpfende Methode, und wie erwartet wird das Modell mit dem Trainingsdatensatz trainiert und mit dem Testdatensatz bewertet.
In den meisten Fällen ist der Trainingsdatensatz doppelt so groß wie der Testdatensatz, d. h. der Originaldatensatz wird im Verhältnis 80:20 oder 70:30 aufgeteilt. Außerdem werden die Daten zufällig gemischt, bevor sie in Trainings- und Validierungssätze aufgeteilt werden.
Diese Kreuzvalidierungsmethode hat jedoch einige Nachteile. Da das Modell mit einer anderen Kombination von Datenpunkten trainiert wird, kann es bei jedem Training unterschiedliche Ergebnisse aufweisen. Außerdem können wir nie ganz sicher sein, dass der gewählte Trainingsdatensatz den gesamten Datensatz darstellt.

Wenn die ursprüngliche Datenprobe nicht zu groß ist, besteht auch die Möglichkeit, dass die Testdaten einige wichtige Informationen enthalten, die das Modell nicht erkennt, da sie nicht in den Trainingsdaten enthalten sind.
Die Holdout-Kreuzvalidierungstechnik ist jedoch ideal, wenn Sie es eilig haben, ein Modell zu trainieren und zu testen, und über einen großen Datensatz verfügen.
2. K-fache Kreuzvalidierung
Die k-fache Kreuzvalidierungsmethode ist eine verbesserte Version der Holdout-Methode. Es bringt mehr Konsistenz in die Punktzahl des Modells, da es nicht davon abhängt, wie wir den Trainings- und Testdatensatz auswählen.
Es handelt sich um eine nicht erschöpfende Kreuzvalidierungsmethode, und wie der Name schon sagt, wird der Datensatz in k Teilungen unterteilt, und die Holdout-Methode wird k-mal durchgeführt.
Wenn beispielsweise der Wert von k gleich zwei ist, gibt es zwei Teilmengen gleicher Größe. In der ersten Iteration wird das Modell auf einer Unterstichprobe trainiert und auf der anderen validiert. In der zweiten Iteration wird das Modell auf der Teilmenge trainiert, die zur Validierung in der vorherigen Iteration verwendet wurde, und auf der anderen Teilmenge getestet. Dieser Ansatz wird als zweifache Kreuzvalidierung bezeichnet.
Wenn der Wert von k gleich fünf ist, wird der Ansatz in ähnlicher Weise als 5-fache Kreuzvalidierungsmethode bezeichnet und umfasst fünf Teilmengen und fünf Iterationen. Auch der Wert von k ist willkürlich. Im Allgemeinen wird der Wert von k auf 10 gesetzt. Wenn Sie bei der Auswahl eines Werts verwirrt sind, wird dasselbe empfohlen.
Das k-fache Kreuzvalidierungsverfahren beginnt mit der zufälligen Aufteilung des ursprünglichen Datensatzes in eine Anzahl von k Falten oder Teilmengen. In jeder Iteration wird das Modell mit den k-1 Teilmengen des gesamten Datensatzes trainiert. Danach wird das Modell auf der k-ten Teilmenge getestet, um seine Leistung zu überprüfen.
Dieser Vorgang wird wiederholt, bis alle k-Faltungen als Bewertungssatz gedient haben. Die Ergebnisse jeder Iteration werden gemittelt und als Kreuzvalidierungsgenauigkeit bezeichnet. Die Kreuzvalidierungsgenauigkeit wird als Leistungsmetrik verwendet, um die Effizienz verschiedener Modelle zu vergleichen.
Die k-fache Kreuzvalidierungstechnik erzeugt im Allgemeinen weniger voreingenommene Modelle, da jeder Datenpunkt aus dem ursprünglichen Datensatz sowohl im Trainings- als auch im Testsatz erscheint. Diese Methode ist optimal, wenn Sie über eine begrenzte Datenmenge verfügen.
Dieser Vorgang kann jedoch erwartungsgemäß zeitaufwändig sein, da der Algorithmus k-mal von Grund auf neu ausgeführt werden muss. Dies bedeutet auch, dass es k-1 mal mehr Rechenzeit benötigt als die Holdout-Methode.
3. Geschichtete k-fache Kreuzvalidierung
Da wir Daten nach dem Zufallsprinzip mischen und bei der k-fachen Kreuzvalidierung in Falten aufteilen, besteht die Möglichkeit, dass wir am Ende unausgewogene Teilmengen haben. Dies kann dazu führen, dass das Training verzerrt wird, was zu einem ungenauen Modell führt.
Betrachten Sie beispielsweise den Fall eines binären Klassifikationsproblems, bei dem jeder der beiden Typen von Klassenbezeichnungen 50 Prozent der ursprünglichen Daten umfasst. Das bedeutet, dass die beiden Klassen zu gleichen Teilen in der Originalstichprobe vorhanden sind. Nennen wir der Einfachheit halber die beiden Klassen A und B.
Beim Mischen von Daten und Aufteilen in Folds besteht eine hohe Wahrscheinlichkeit, dass wir mit einem Fold enden, in dem die Mehrheit der Datenpunkte aus Klasse A und nur wenige aus Klasse B stammen. Eine solche Teilmenge wird als unausgewogene Teilmenge angesehen und kann es zur Erstellung eines ungenauen Klassifikators führen.
Um solche Situationen zu vermeiden, werden die Falten mithilfe eines Prozesses namens Schichtung geschichtet . Bei der Schichtung werden die Daten neu angeordnet, um sicherzustellen, dass jede Teilmenge eine gute Darstellung des gesamten Datensatzes darstellt.
Im obigen Beispiel der binären Klassifizierung würde dies bedeuten, dass es besser ist, die ursprüngliche Stichprobe so aufzuteilen, dass die Hälfte der Datenpunkte in einer Faltung von Klasse A und der Rest von Klasse B stammen.
4. Leave-p-out Kreuzvalidierung
Leave-p-out Cross-Validation (LpOCV) ist eine erschöpfende Methode, bei der p Datenpunkte aus der Gesamtzahl der durch n repräsentierten Datenstichproben entnommen werden.
Das Modell wird an np Datenpunkten trainiert und später an p Datenpunkten getestet. Derselbe Vorgang wird für alle möglichen Kombinationen von p aus der ursprünglichen Probe wiederholt. Schließlich werden die Ergebnisse jeder Iteration gemittelt, um die Genauigkeit der Kreuzvalidierung zu erreichen.
5. Leave-one-out Kreuzvalidierung
Der Ansatz der Leave-One-Out-Kreuzvalidierung (LOOCV) ist eine vereinfachte Version von LpOCV. Bei dieser Kreuzvalidierungstechnik wird der Wert von p auf eins gesetzt. Daher ist diese Methode viel weniger erschöpfend. Die Durchführung dieses Verfahrens ist jedoch teuer und zeitaufwändig, da das Modell n-mal angepasst werden muss.
Es gibt andere Kreuzvalidierungstechniken, einschließlich wiederholter zufälliger Subsampling-Validierung, verschachtelter Kreuzvalidierung und Zeitreihen-Kreuzvalidierung.
Anwendungen der Kreuzvalidierung
Die Hauptanwendung der Kreuzvalidierung besteht darin, die Leistung von Modellen für maschinelles Lernen zu bewerten. Dies hilft dabei, Methoden des maschinellen Lernens zu vergleichen und festzustellen, welche für die Lösung eines bestimmten Problems ideal sind.
Angenommen, Sie erwägen k-nächste Nachbarn (KNN) oder Hauptkomponentenanalyse (PCA) , um eine optische Zeichenerkennung durchzuführen. In diesem Fall können Sie eine Kreuzvalidierung verwenden, um die beiden basierend auf der Anzahl der Zeichen zu vergleichen, die von jeder Methode falsch klassifiziert wurden.
Die Kreuzvalidierung kann auch bei der Merkmalsauswahl verwendet werden, um Merkmale auszuwählen, die am meisten zur Vorhersageausgabe beitragen.
Einschränkungen der Kreuzvalidierung
Die Hauptherausforderung der Kreuzvalidierung ist der Bedarf an übermäßigen Rechenressourcen, insbesondere bei Methoden wie dem k-fachen CV. Da der Algorithmus k-mal von Grund auf neu ausgeführt werden muss, erfordert die Auswertung k-mal mehr Berechnung.
Eine weitere Einschränkung ist diejenige, die unsichtbare Daten umgibt. Bei der Kreuzvalidierung ist der Testdatensatz der unsichtbare Datensatz, der zur Bewertung der Leistung des Modells verwendet wird. Theoretisch ist dies eine großartige Möglichkeit, um zu überprüfen, wie das Modell funktioniert, wenn es für reale Anwendungen verwendet wird.
In der Praxis kann es jedoch niemals einen umfassenden Satz unsichtbarer Daten geben, und man kann niemals vorhersagen, auf welche Art von Daten das Modell in Zukunft stoßen könnte.
Angenommen, ein Modell wird erstellt, um das Risiko einer Person vorherzusagen, an einer bestimmten Infektionskrankheit zu erkranken. Wenn das Modell mit Daten aus einer Forschungsstudie trainiert wird, an der nur eine bestimmte Bevölkerungsgruppe (z. B. Frauen Mitte 20) beteiligt ist, kann die Vorhersageleistung bei Anwendung auf die allgemeine Bevölkerung dramatisch von der Kreuzvalidierungsgenauigkeit abweichen .
Darüber hinaus führt die Kreuzvalidierung nur dann zu aussagekräftigen Ergebnissen, wenn menschliche Verzerrungen im ursprünglichen Stichprobensatz kontrolliert werden.
Kreuzvalidierung zur Rettung
Die kreuzvalidierte Modellerstellung ist eine hervorragende Methode, um maschinelle Lernanwendungen mit größerer Genauigkeit oder Leistung zu erstellen. Kreuzvalidierungstechniken wie die k-fache Kreuzvalidierung ermöglichen es, die Leistung eines Modells abzuschätzen, ohne die Testaufteilung zu opfern.
Sie beseitigen auch die Probleme, die eine unausgeglichene Datenaufteilung verursacht; Kurz gesagt, sie können Datenwissenschaftlern ermöglichen, sich weniger auf Glück und mehr auf Iterationen zu verlassen.
Es gibt eine Teilmenge des maschinellen Lernens, die versucht, die Funktionsweise des menschlichen Gehirns nachzuahmen. Es heißt Deep Learning, und künstliche allgemeine Intelligenz würde, wenn überhaupt möglich, ihre Entscheidungsfähigkeit erfordern.