Entschuldigung für die dummen Fragen - insgesamt n00b hier.Zeitreihen-Regression - RandomForest
Angenommen, ich habe den folgenden Datensatz.
date,site,category,locale,type,rank,sessions,logins
01/01/2017,google.com,search,US,free,1,3393093,50000
01/01/2017,google.com,overall,US,free,1,3393093,50000
01/01/2017,yahoo.com,search,US,3,free,core,393093,40000
01/01/2017,yahoo.com,news,US,9,free,393093,40000
01/01/2017,yahoo.com,overall,US,23,free,393093,40000
01/01/2017,wsj.com,news,US,21,free,200000,180000
01/01/2017,wsj.com,news,US,21,subscription,200000,180000
01/01/2017,wsj.com,overall,US,93,free,200000,180000
wo Rang ist der Alexa-Rang dieser Website. Es sind mehrere Kategorien möglich (Suche, E-Mail, E-Commerce etc.) und der Rang entspricht dem Rang innerhalb dieser Kategorie.
Ich versuche, die Anzahl der Sitzungen und Logins einer bestimmten Website/locale/Rang für einen bestimmten Tag vorherzusagen, im Wesentlichen bis hinunter zu einem multivariaten Zeitreihen-Regression Problem und ich verwende sklearns RandomForestRegressor.
Im Moment habe ich behandle diese nicht als Zeitreihe Problem - für die Ausbildung, entferne ich die date
und site
Spalten, kodieren die category
, locale
und rank
Spalten, verwenden Sie sie und rank
als Eingänge und mein Modell trainieren vorauszusagen sessions
und logins
. Die Ergebnisse sehen gut aus, aber ich wollte wissen:
Wie könnte dies in eine richtige Zeitreihenvorhersage umgewandelt werden? Ich sah some examples by Jason Brownlee, wo das Problem als ein überwachtes Lernproblem umgekrempelt wurde - aber das würde nicht funktionieren, da ich möglicherweise Millionen von Reihen von Trainingsdaten habe. Ich könnte die Trainingsdaten nach Kategorie/Gebietsschema/Typ gruppieren, nach Datum sortieren und zum Testen am Tag T für eine bestimmte Kombination aus Kategorie/Gebietsschema/Typ Daten bis zum Tag T-1 zum Training verwenden - aber dieser Ansatz wäre sehr teuer Da es potenziell Tausende solcher Kategorie/Gebietsschema/Typ-Kombinationen gibt
Ich habe gelesen über die Verwendung von gleitenden Durchschnitten, um die Leistung zu steigern. Die Berechnung der gleitenden Mittelwerte von
sessions
undlogins
im Trainingssatz wäre trivial, aber da dies eine abhängige Variable ist, wie würde ich das im Testset erfassen?Gibt es ein besseres Werkzeug als RF für diese Aufgabe?
Dank zu bauen, aber Die "shift" -Methode beinhaltet das Erstellen einer Spalte für jede Zeile. Wenn man sieht, dass es etwa eine Million Zeilen gibt, würde das zu einer Million + Spalten führen - ich bin mir nicht sicher über die Effizienz dort – Craig
Sie machen keine Spalte für jede Zeile, Sie tun nur ein paar Schritte innerhalb einer Fenstergröße (in der verlinkte Blogpost verwenden sie nur den vorherigen Zeitschritt für jede Zeile) – maxymoo