Holdout-Daten und Kreuzvalidierung
Eine der größten Herausforderungen bei der prädiktiven Analyse besteht darin, herauszufinden, wie ein trainiertes Modell sich bei Daten verhält, die ihm noch völlig unbekannt sind. Es muss also geprüft werden, wie gut das Modell echte Muster gelernt hat, im Gegensatz zum einfachen Auswendiglernen der Trainingsdaten. Holdout-Daten und Kreuzvalidierung sind effektive Techniken, mit denen Sie sich vergewissern können, dass Ihr Modell nicht nur auswendig lernt, sondern tatsächlich allgemeine Muster erlernt.
Bei der Konfiguration des Experiments können Sie wählen, ob die Trainings- und Holdout-Daten nach dem Zufallsprinzip oder mit einer speziellen Methode zur Erstellung von zeitbezogenen Modellen aufgeteilt werden.
Testen von Modellen auf Auswendiglernen im Gegensatz zu Generalisieren
Wenn wir uns fragen, wie gut das Modell in der Realität funktionieren wird, entspricht dies der Frage, ob das Modell auswendig lernt oder generalisiert. Auswendiglernen ist die Fähigkeit, sich perfekt zu erinnern, was in der Vergangenheit geschehen ist. Ein Modell, das auswendig lernt, erzielt beim anfänglichen Training hohe Werte. Die Vorhersagegenauigkeit fällt allerdings signifikant ab, wenn es auf neue Daten angewendet wird. Stattdessen möchten wir ein Modell, dass generalisiert. Generalisierung ist die Fähigkeit, allgemeine Muster zu lernen und anzuwenden. Ein generalisiertes Modell erlernt die echten, umfassenderen Muster aus Trainingsdaten und ist in der Lage, die gleichen hochwertigen Vorhersagen für neue Daten zu treffen, die es zuvor noch nicht gesehen hat.
Automatisches Holdout von Daten
Unter Holdout verstehen sich Daten, die während des Trainings für das Modell „ausgeblendet“ und dann zum Bewerten des Modells verwendet werden. Das Holdout simuliert, wie gut die Leistung des Modells bei zukünftigen Vorhersagen sein wird, indem Genauigkeitsmetriken für Daten generiert werden, die nicht im Training verwendet wurden. Das ist so, als würden wir ein Modell erstellen, bereitstellen und seine Vorhersagen bezüglich dessen, was tatsächlich geschehen ist, überwachen – ohne auf diese späteren Vorhersagen warten zu müssen.
In Qlik AutoML gibt es zwei Methoden zur Auswahl von Holdout-Daten: die Standardmethode und die zeitbasierte Methode.
Standardmethode zum Auswählen von Holdout-Daten
Wenn Sie das zeitbezogene Modelltraining nicht aktivieren, werden die Holdout-Daten vor dem Start des Modelltrainings zufällig ausgewählt.
Zeitbasierte Methode zum Auswählen von Holdout-Daten
Bei der zeitbasierten Methode wird der gesamte Trainingsdatensatz zunächst nach einer von Ihnen ausgewählten Datumsindexspalte sortiert. Nach dem Sortieren werden die Holdout-Daten vom Rest der Trainingsdaten getrennt. Diese Holdout-Daten enthalten die neuesten Daten in Bezug auf den von Ihnen ausgewählten Index.
Die zeitbasierte Methode wird zum Erstellen von zeitbezogenen Modellen verwendet. Sie aktivieren das zeitbezogene Training im Fenster „Experimentkonfiguration“ unter Modelloptimierung. Weitere Informationen finden Sie unter Konfigurieren von Experimenten.
Kreuzvalidierung
Die Kreuzvalidierung ist ein Prozess, bei dem getestet wird, wie gut ein ML-Modell zukünftige Werte für Daten vorhersagen kann, die es noch nicht verarbeitet hat. Bei der Kreuzvalidierung werden die Trainingsdaten für ein Modell in eine Anzahl von Segmenten, so genannte Faltungen, aufgeteilt. Bei jeder Iteration des Trainings wird das Modell mit einer oder mehreren Faltungen trainiert, wobei dafür gesorgt wird, dass mindestens eine der Faltungen nicht für das Training verwendet wird. Nach jeder Iteration wird die Leistung anhand einer der Faltungen bewertet, die beim Training nicht verwendet wurde.
Das Ergebnis der Kreuzvalidierung ist eine Reihe von Testmetriken, die eine angemessene Vorhersage dessen ergeben, wie genau das trainierte Modell Daten vorhersagen kann, die es zuvor noch nie gesehen hat.
In Qlik AutoML gibt es zwei Methoden für die Kreuzvalidierung: die Standardmethode und die zeitbasierte Methode.
Standard-Kreuzvalidierung
Sofern Sie das Training nicht für eine zeitbasierte Kreuzvalidierung konfigurieren, verwendet Qlik AutoML die Standardmethode der Kreuzvalidierung. Die Standardmethode der Kreuzvalidierung eignet sich für Modelle, die sich nicht auf eine Zeitreihendimension stützen – das heißt, das Modell muss keine Vorhersagen unter Berücksichtigung einer bestimmten zeitbasierten Spalte in den Trainingsdaten treffen.
Bei der Standardmethode der Kreuzvalidierung wird ein Datensatz zufällig in eine Reihe gleich großer Segmente aufgeteilt, die als Faltungen bezeichnet werden. Der Algorithmus für maschinelles Lernen trainiert das Modell mit allen Faltungen außer einer. Bei der Kreuzvalidierung wird dann jede Faltung mit einem Modell getestet, das mit allen anderen Faltungen trainiert wurde. Das bedeutet, dass jedes trainierte Modell mit einem Datensegment getestet wird, das es vorher noch nie gesehen hat. Der Prozess wird mit einer weiteren, während des Trainings ausgeblendeten Faltung wiederholt und dann getestet, bis alle Faltungen genau einmal als Test verwendet und in jeder anderen Iteration trainiert wurden.
Automatisches Holdout und Standard-Kreuzvalidierung
Standardmäßig verwendet AutoML Kreuzvalidierung mit fünf Faltungen während des Modelltrainings, um die Modellleistung zu simulieren. Das Modell wird dann mit einem getrennten Holdout der Trainingsdaten getestet. Damit werden Bewertungsmetriken erzielt, anhand derer Sie bewerten und vergleichen können, wie gut die Leistung verschiedener Algorithmen ist.
Bevor das Training Ihres Experiments startet, werden alle Daten in Ihrem Datensatz mit einem Ziel von nicht Null nach dem Zufallsprinzip gemischt. 20 Prozent des Datensatzes werden als Holdout-Daten extrahiert. Die verbleibenden 80 Prozent des Datensatzes werden verwendet, um das Modell mit Kreuzvalidierung zu trainieren.
Zur Vorbereitung auf die Kreuzvalidierung wird der Datensatz nach dem Zufallsprinzip in fünf Teile (Faltungen) unterteilt. Das Modell wird dann fünf Mal trainiert, wobei jedes Mal ein anderes Fünftel der Daten „ausgeblendet“ wird, um zu testen, wie gut die Modellleistung ist. Während der Kreuzvalidierung werden Trainingsmetriken generiert, die den Durchschnitt der berechneten Werte darstellen.
Nach dem Training wird das Modell auf die Holdout-Daten angewendet. Da die Holdout-Daten vom Modell während des Trainings nicht gelesen wurden (im Gegensatz zu den Kreuzvalidierungsdaten), sind sie ideal für die Validierung der Modelltrainingsleistung. Während dieser abschließenden Modellbewertung werden Holdout-Metriken generiert.
Weitere Informationen zu den für die Analyse der Modellleistung verwendeten Metriken finden Sie unter Überprüfen der Modelle.
Zeitbasierte Kreuzvalidierung
Die zeitbasierte Kreuzvalidierung eignet sich für das Training des Modells zur Datenvorhersage gemäß einer Zeitreihendimension. Ein Beispiel: Sie möchten die Umsätze Ihres Unternehmens für den nächsten Monat vorhersagen, und zwar anhand eines Datensatzes, der Umsatzdaten aus der Vergangenheit enthält. Um die zeitbasierte Kreuzvalidierung zu verwenden, muss eine Spalte in Ihren Trainingsdaten vorhanden sein, die Datums- oder Zeitstempelinformationen enthält.
Die zeitbasierte Kreuzvalidierung wird zum Erstellen von zeitbezogenen Modellen verwendet. Sie aktivieren das zeitbezogene Training im Fenster „Experimentkonfiguration“ unter Modelloptimierung. Weitere Informationen finden Sie unter Konfigurieren von Experimenten.
Bei der zeitbasierten Kreuzvalidierung werden Modelle für ein besseres Verständnis dafür trainiert, dass sie Daten für zukünftige Zeiträume vorhersagen.
Wie bei der Standardmethode werden bei der zeitbasierten Kreuzvalidierung die Trainingsdaten in Faltungen aufgeteilt, die sowohl für das Training als auch zum Testen verwendet werden. Bei beiden Methoden werden die Modelle auch über eine Anzahl von Iterationen trainiert. Die zeitbasierte Methode weist jedoch einige Unterschiede zur Standardmethode auf:
Die Trainingsdaten werden nach dem von Ihnen gewählten Datumsindex sortiert und in Faltungen organisiert. Im Gegensatz dazu wird bei der Standardkreuzvalidierung nach dem Zufallsprinzip ausgewählt, welche Zeilen in eine bestimmte Faltung eingeschlossen werden.
Die Zahl der Faltungen, die als Trainingsdaten verwendet werden, nimmt mit jeder Iteration des Trainings schrittweise zu. Das bedeutet, dass bei der ersten Iteration möglicherweise nur die erste (älteste) Faltung verwendet wird, während die nachfolgenden Iterationen nach und nach eine größere Menge an Trainingsdaten enthalten, einschließlich neuerer Daten. Die Faltung, die Testdaten verwendet wird, ändert sich mit jeder Iteration.
Dies steht im Gegensatz zur Standard-Kreuzvalidierungsmethode, bei der in jeder Iteration eine feste Menge an Daten für Trainings- und Test-Splits verwendet wird (d.h. vier Faltungen für das Training und eine Faltung für das Testen).
Da der gesamte Trainingsdatensatz nach dem von Ihnen ausgewählten Index sortiert wird, sind die Daten, die zum Testen des trainierten Modells verwendet werden, immer aktueller als die Daten, die zum Trainieren des Modells verwendet wurden, bzw. genauso aktuell. Die automatischen Holdout-Daten, die zur Durchführung der abschließenden Leistungstests des Modells verwendet werden, sind immer aktueller als der übrige Trainingsdatensatz, bzw. genauso aktuell.
Im Gegensatz dazu kann die Standard-Kreuzvalidierung dazu führen, dass Modelle mit Daten getestet werden, die älter sind als die Trainingsdaten, was zu Datenlecks führt.
Automatisches Holdout und zeitbasierte Kreuzvalidierung
Dieses Verfahren zeigt, wie zeitbezogene Modelle trainiert werden. Das Verfahren weist Unterschiede und Gemeinsamkeiten mit dem Standard-Kreuzvalidierungsverfahren auf.
Alle Daten Ihres Datensatzes werden nach dem von Ihnen gewählten Datumsindex sortiert. Dies gilt für die Trainingsdaten und die Holdout-Daten.
Bevor das Training Ihres Experiments startet, werden 20 Prozent des Datensatzes als Holdout-Daten extrahiert. Diese Holdout-Daten sind aktueller oder genauso aktuell wie der Rest des Datensatzes. Die verbleibenden 80 Prozent des Datensatzes werden verwendet, um das Modell mit Kreuzvalidierung zu trainieren.
Zur Vorbereitung der Kreuzvalidierung werden die sortierten Trainingsdaten in eine Anzahl von Faltungen aufgeteilt. Bezogen auf den von Ihnen ausgewählten Datumsindex enthält die erste Faltung die ältesten und die letzte Faltung die neuesten Datensätze.
Das Modell wird dann in fünf Iterationen trainiert. In jeder Iteration wird die Menge der Trainingsdaten schrittweise erhöht. Mit jeder Iteration wird auch die Aktualität der eingeschlossenen Trainingsdaten erhöht. Während der Kreuzvalidierung werden Trainingsmetriken generiert, die den Durchschnitt der berechneten Werte darstellen.
Nach dem Training wird das Modell auf die Holdout-Daten angewendet. Da die Holdout-Daten vom Modell während des Trainings nicht gelesen wurden, sind sie ideal für die Validierung der Modelltrainingsleistung. Während dieser abschließenden Modellbewertung werden Holdout-Metriken generiert.