01.10.2019
Trainieren, testen, kreuzen
Viele Unternehmen erkennen jetzt, dass in ihren gespeicherten Daten ein verborgener Schatz liegt. Um das herauszufinden und qualitativ hochwertige Vorhersagen zu erstellen, haben sich Methoden des maschinellen Lernens in den letzten Jahren zu einem nützlichen Werkzeug entwickelt. Sie erfordern jedoch bestenfalls lange Zeitreihen, die nicht immer verfügbar sind. Wir zeigen, wie die k-fach sperrende Kreuzvalidierung (BCV) auch dieses Problem lösen kann und wie aus wenigen Zahlen ein Maximum an Informationen generiert werden kann.
Lieber ProgBlog-Besucher,
Im digitalen Zeitalter stehen immer mehr Daten zur Verfügung, oft ohne dass Unternehmen das Vorhersagepotenzial erkennen. Die Herausforderung besteht nicht nur darin, Daten zu sammeln, sondern aussagekräftige Informationen daraus zu extrahieren. Machine-Learning-Methoden sind hier nun eine große Hilfe. Einfach gesagt, Algorithmen erkennen Muster undTendenzenin einer Datenbank und kann dieses generierte Wissen auf unbekannte Daten anwenden. Für qualitativ hochwertige Vorhersagen auf Basis dieser Methoden ist es vor allem wichtig, sie zu optimieren.Hyperparameteressentiell. Zudem sollen Modellvergleiche die Auswahl ermöglichenKovariableMach es möglich. Idealerweise wird ein Modell generiert, das zukünftige Werte zuverlässig vorhersagt.
Um dies zu finden, ist es üblich, einen gegebenen Datensatz in einen Trainingssatz und einen Testsatz aufzuteilen. Ersteres dient dazu, Modellparameter zu finden, letzteres zur Überprüfung der Modellqualität, also inwieweit die prognostizierten Modellwerte von den tatsächlichen Werten abweichen. Daher wird nach einem System gesucht, das möglichst gut verallgemeinert, d. H. arbeitet gut mit unveröffentlichten Daten. Je mehr (gut gepflegte) Datenreihen zur Verfügung stehen und je länger diese sind, desto einfacher ist es, i. A. Erstellen Sie ein Modell, das diese Eigenschaft behauptet.
Der Validierungsprozess bringt Herausforderungen mit sich
Leider hat die Massendatenspeicherung in vielen Unternehmen erst in den letzten Jahren richtig Fahrt aufgenommen. Aus diesem Grund sind die vorhandenen Datenmengen groß, haben aber oft eine kurze Historie. Allerdings läuft man mit jedem Wert, der im Testset und damit nicht im Trainingsset ist, Gefahr, wichtige Muster und Trends im Datensatz zu übersehen und ein Modell mit höheren Fehlerwerten zu generieren. Aber genau das ist das Ziel: ein Modell zu finden, das bei neuen Werten robuste Ergebnisse liefert.
Außerdem sind Sie bei einer klassischen Trainings-/Testaufteilung darauf angewiesen, dass das Testset so nah wie möglich an der "realen Welt" ist und alle Fälle abdeckt, die das trainierte Modell finden kann. Angenommen, Sie möchten Rohölpreise prognostizieren. Wir verwenden durchschnittliche Tagespreise vom Dezember eines Jahres als Test-Set und vergangene Werte von Januar bis einschließlich November als Trainings-Set. Wenn die Ölpreise im Dezember aufgrund saisonaler Effekte, wie z. B. einer höheren Nachfrage in den Wintermonaten, deutlich höher sind als im Rest des Jahres, wird das trainierte Modell im Validierungsprozess einen hohen Fehlerwert haben, obwohl es gut verallgemeinern kann. .
Kreuzvalidierung hilft
Der Cross-Validation-AnsatzKreuzvalidierung) behandelt diese Probleme. Die Methodik verwendet alle vorhandenen Daten sowohl zum Trainieren als auch zum Testen des Modells. Einerseits lassen sich auch bei relativ kurzen Zeitreihen belastbare Aussagen über die Bestandteile eines guten Modells treffen (bzglKovariablemiHyperparameter) und alle wichtigen Muster werden mit hoher Wahrscheinlichkeit erkannt. Andererseits wird auf diese Weise nicht nur einer einzelnen Testreihe die große Bedeutung beigemessen, mit der das Modell steht oder fällt. Diese Art der Validierung ist daher nicht nur auf Daten mit kurzer Historie beschränkt, sondern kann auch bei längerer Historie sinnvoll eingesetzt werden.
Cross-Training und Tests
Und so funktioniert der Prozess: Um das beste Set zu erhaltenHyperparametermiKovariableFinden Sie alle erdenklichen Kombinationen mit Hilfe derk-fache Kreuzvalidierungnachgewiesen Der Verlauf der Zeitreihe wird in k Blöcke unterteilt. Das Modell wird dann in k-1 Blöcken trainiert und der verbleibende Block wird unter Verwendung des Modells vorhergesagt. Nimmt man die ersten k-1-Blöcke zum Training, hat man das klassische Out-of-Sample-Validierungsverfahren für Zeitreihen. Mit der genannten Methode gehen Sie jedoch noch einen Schritt weiter, um das volle Potenzial auszuschöpfen. Der vorherzusagende Block wird sukzessive geändert, bis jeder der k Blöcke einmal als Testperiode verwendet wurde. Dadurch wird sichergestellt, dass eine Abweichung von der Norm um einen Block, die zu einer Modellverschlechterung führen kann, nicht zu viel Gewicht hat, aber trotz aller Tests Neuland ist.
Der Durchschnitt der auf diese Weise gemessenen k Fehler wird verwendet, um die endgültige Fehlermessung zu berechnen. der Satz anParametermiKovariable, der den niedrigsten endgültigen Fehlerwert und damit die beste Vorhersage im gesamten Datensatz lieferte, wird für zukünftige Vorhersagen verwendet. Der große Vorteil des Verfahrens besteht darin, dass (fast) alle Punkte im gesamten Zeitraum einmal aus der Stichprobe vorhergesagt werden und das maximal mögliche Potenzial des Datensatzes ausgeschöpft wird. Außerdem werden durch die Mittelung die Fehler genauer abgeschätzt und es kann eine genauere Einschätzung hinsichtlich der Verallgemeinerbarkeit des Modells getroffen werden.
Bei Zeitreihenprognosen ist zu beachten, dass die Daten aus naheliegenden Gründen statistisch nicht unabhängig voneinander sind. Dies verstößt jedoch gegen eine der Grundvoraussetzungen der Kreuzvalidierung.Bergmeir und Benitez (2012)also frag diek-fach gesperrte Kreuzvalidierung (BCV)wobei eine bestimmte Anzahl von Datenpunkten von den Rändern des Blocks entfernt wird, der als Testsatz verwendet wird. Dieser "Puffer" zwischen den Trainings- und Testdatensätzen stellt die Datenunabhängigkeit sicher.
Trainings- und Testsets für traditionelle Out-of-Sample-Evaluation und 5-fache BCV (k = 5). Die blauen Punkte stammen aus der Trainingsset-Zeitreihe, die gelben Punkte aus dem Testset. In diesem Beispiel werden immer zwei Werte an den Grenzen der Testsatzblöcke weggelassen (Diagramm basierend aufBergmeir und Benitez (2014)).
Lange Rechenzeiten zu berücksichtigen
Die Vorteile der Kreuzvalidierung schlagen sich natürlich an anderer Stelle nieder: Der Zeitaufwand für die Berechnungen ist nicht zu vernachlässigen und hängt stark von der Datenmenge und der Wahl von k ab. Beim Vergleich einer einfachen Out-of-Sample-Validierung und einer Kreuzvalidierung zeigt sich der klassische Kompromiss zwischen Qualität, Zeit und Kosten: Sind die Zeitreihen lang genug, werden Zeit und Geld gespart. Eine gute Datenbasis zahlt sich aus. Aber selbst wenn sie kurz sind, können wir immer noch Informationen extrahieren, wenn auch mit mehr Rechenzeit.
Und schließlich ist diese Art der Validierung nicht nur graue Theorie: Wir haben sie in mehreren Projekten eingesetzt, um aussagekräftige Ergebnisse zuverlässig vorherzusagen und zu liefern.
Sie möchten wissen, wie wir mit künstlicher Intelligenz umgehen?
Blog: Künstliche Intelligenz in der Prognose
Informationsbox:
Hyperparameter:Ein Hyperparameter ist ein Parameter, der verwendet wird, um den Algorithmus in maschinellen Lernverfahren abzustimmen, und der nicht durch das Verfahren selbst geschätzt werden kann. Dazu gehören beispielsweise bei künstlichen neuronalen Netzen (KNNs) die Anzahl der für das Training verwendeten Epochen oder die Anzahl der verborgenen Schichten. Hyperparameter werden vom Benutzer vor dem Trainingsprozess oft manuell definiert.
Kovariable:In einem prädiktiven (statistischen) Modell ist eine Kovariate eine Einflussvariable, die als Prädiktor fungiert, d. h. einen potenziellen Einfluss auf die vorherzusagende abhängige Variable hat und daher in einem prädiktiven Modell berücksichtigt wird. Beispielsweise kann die tägliche Höchsttemperatur eine Kovariate sein, um den täglichen Stromverbrauch einer Stadt zu modellieren und vorherzusagen.
Verweise:
Bergmeir, C. und Benítez, J.M. (2012). Zur Verwendung von Kreuzvalidierung zur Bewertung von Zeitreihenprädiktoren. Informationswissenschaften, 191, 192-213.
Bergmeir, C., Costantini, M. und Benítez, J.M. (2014). Über die Nützlichkeit der Kreuzvalidierung zur Beurteilung von Richtungsprognosen. Computational Statistics and Data Analysis, 76, 132-143.