Ich kann nicht genau sagen, um welche Art von Daten es sich handelt, da es sich um geschützte Daten handelt. Nehmen wir jedoch an, wir haben folgende Daten: Jeden Monat melden sich einige Personen für einen Dienst an. In jedem darauffolgenden Monat können diese Personen den Service aktualisieren, den Service beenden oder den Service verweigern (z. B. wegen Nichtbezahlung). Für die früheste Kohorte in unseren Daten liegen uns etwa 2 Jahre (24 Monate) vor.
Die Anzahl der Personen, die sich einem Monat anschließen, ist hoch (im Bereich von 100.000) und die Anzahl derjenigen, die eines der drei Dinge tun, liegt bei Tausenden. Wir verwenden jedoch nicht die Daten auf Einzelebene (das wären Millionen von Zeilen), sondern Daten, die nach Monat und Kohorte aggregiert sind (wie viel Prozent jeder Kohorte tun jeden Monat etwas).
Wir haben vorhandene Daten mit multivariaten adaptiven Regressionssplines (MARS) modelliert und einige interessante Ergebnisse gefunden. Ich mache mir jedoch Sorgen, diese zu verwenden, um die Zukunft zu extrapolieren oder vorherzusagen. Ich mache mir Sorgen, weil Vorhersagen für die Zukunft (in Bezug auf die Zeit) notwendigerweise außerhalb des Probenraums liegen und Splines für die Extrapolation instabil werden können.
Ist das eine legitime Methode? Welche Anliegen gibt es und können sie angesprochen werden?
quelle
Antworten:
Nach meiner Interpretation der Frage ist die grundlegende Frage, die Sie stellen, ob Sie Zeit als Spline modellieren können oder nicht.
Die erste Frage, die ich beantworten möchte, ist, ob Sie Splines verwenden können, um Ihre Daten zu extrapolieren. Die kurze Antwort ist, es kommt darauf an, aber die meiste Zeit sind Splines nicht so gut für die Extrapolation. Splines sind im Wesentlichen eine Interpolationsmethode, sie partitionieren den Speicherplatz, auf dem sich Ihre Daten befinden, und passen auf jede Partition zu einem einfachen Regressor. Schauen wir uns also die Methode von MARS an. Die MARS-Methode ist definiert als wobei die Konstante am ten Term im MARS-Modell ist , ist die Basisfunktion im i'ten Term und
Um auf die Frage zurückzukommen, warum Splines für die Extrapolation normalerweise nicht so gut geeignet sind, muss man erkennen, dass nach dem Überschreiten der Interpolationsgrenzen nur ein sehr kleiner Teil des Modells "aktiviert" wird. oder ein sehr großer Teil davon wird "aktiviert", und daher verschwindet die Kraft des Modells (wegen des Mangels an Variation). Um ein bisschen mehr Intuition zu bekommen, wollen wir so tun, als würden wir versuchen, ein MARS-Modell an einen Feature-Space anzupassen, der in . Bei einer gegebenen Zahl versuchen wir, eine andere vorherzusagen. Das MARS-Modell wartet mit einer Funktion auf, die ungefähr so aussieht: Wenn die Extrapolation nach der ZahlR
Kommen wir nun zu den Zeitreihen zurück. Zeitreihen sind im maschinellen Lernen ein ganz besonderer Fall. Sie neigen dazu, eine gewisse Struktur aufzuweisen, sei es eine teilweise Abweichung oder eine der vielen verschiedenen Arten von Unterstrukturen, und diese Struktur kann ausgenutzt werden. Es werden aber spezielle Algorithmen benötigt, die diese Struktur ausnutzen können, Splines tun dies leider nicht.
Es gibt ein paar Dinge, die ich Ihnen empfehlen würde, auszuprobieren. Das erste wären wiederkehrende Netzwerke. Wenn Ihre Zeitreihe nicht so lang ist (und keine langfristigen Abhängigkeiten aufweist), sollten Sie in der Lage sein, ein einfaches, wiederkehrendes Vanille-Netzwerk zu verwenden. Wenn Sie verstehen möchten, was gerade passiert, können Sie eine gleichgerichtete Lineareinheit mit Vorspannungen als Aktivierungsfunktion verwenden. Dies entspricht der MARS-Modellierung anhand der Teilmenge der Zeitreihen und des "Gedächtnisses" des wiederkehrenden neuronalen Netzes hält. Es ist schwer zu interpretieren, wie der Speicher vom Netz verwaltet wird, aber Sie sollten eine Vorstellung davon bekommen, wie der Unterraum in Bezug auf die generierte stückweise lineare Funktion behandelt wird. Auch wenn Sie statische Features haben, die nicht zu den Zeitreihen gehören, ist es relativ einfach, diese weiterhin im Netz zu verwenden.
Wenn die von Ihnen verwendete Zeitreihe sehr lang ist und möglicherweise langfristige Abhängigkeiten aufweist, empfehle ich die Verwendung eines der mit einem Gatter versehenen wiederkehrenden Netzwerke, z. B. GRU oder LSTM.
Auf der klassischeren Seite der Zeitreihenklassifizierung können Sie Hidden-Markov-Modelle verwenden. Ich werde nicht weiter darauf eingehen, weil ich mit ihnen nicht so vertraut bin.
Abschließend würde ich aus zwei Gründen die Verwendung von Splines nicht empfehlen. Erstens ist es nicht in der Lage, komplizierte Extrapolationsprobleme zu lösen, was das Problem zu sein scheint, das Sie beschreiben. Und zweitens nutzen Splines nicht die Unterstrukturen von Zeitreihen, die bei der Klassifizierung von Zeitreihen sehr mächtig sein können.
Hoffe das hilft.
quelle