Ich arbeite derzeit an einigen Zeitreihendaten. Ich weiß, dass ich das LOESS / ARIMA-Modell verwenden kann.
Die Daten werden in einen Vektor mit einer Länge von 1000 geschrieben. Dies ist eine Warteschlange, die alle 15 Minuten aktualisiert wird.
Somit werden die alten Daten herausspringen, während die neuen Daten den Vektor einschieben.
Ich kann das gesamte Modell auf einem Scheduler erneut ausführen, z. B. das Modell alle 15 Minuten neu trainieren, dh den gesamten 1000-Wert zum Trainieren des LOESS-Modells verwenden. Dies ist jedoch sehr ineffizient, da jedes Mal nur ein Wert eingefügt wird, während weitere 999 Werte verwendet werden immer noch das gleiche wie beim letzten Mal.
Wie kann ich also eine bessere Leistung erzielen?
Danke vielmals
Antworten:
Lassen Sie mich dies in etwas umformulieren, das mir vertrauter ist. Die ARIMA ist analog zur PID-Näherung. Ich bin ganzheitlich. MA ist P. Der AR kann als Differenzgleichungen ausgedrückt werden, die der D-Term sind. LOESS ist ein Analogon zur Anpassung der kleinsten Quadrate (Hightech-Big Brother wirklich).
Was könnte ich tun, wenn ich ein Modell zweiter Ordnung (PID) verbessern wollte?
Eine der Fragen, die ich nicht gestellt habe, ist "Was bedeutet Leistung?". Wenn wir kein klar angegebenes Maß für die Güte haben, kann man nicht sagen, ob sich eine Kandidatenmethode "verbessert". Anscheinend möchten Sie eine bessere Modellierung, kürzere Rechenzeit und eine effizientere Nutzung von Informationen. Eine Ephemeride über die tatsächlichen Daten kann dies ebenfalls informieren. Wenn Sie Wind modellieren, können Sie wissen, wo Sie nach erweiterten Modellen suchen oder Transformationen für Ihre Daten finden müssen, die nützlich sind.
quelle
Dies ist eine andere Frage, je nachdem, ob Sie ein Löss- oder ein ARIMA-Modell verwenden. Ich werde vorerst nur die Lössfrage beantworten, da ich vermute, dass im ARIMA-Fall nur geringe Effizienzvorteile möglich sind, außer vielleicht einen guten Satz von Startwerten zu haben.
Ein Lössmodell passt eine gewichtete Regression an verschiedene Teilmengen der Daten an. Für jede Anpassung wird nur ein Teil der Daten verwendet. Jedes Mal, wenn Sie das Modell neu anpassen, indem Sie einen Datenpunkt an einem Ende abgelegt und einen anderen am anderen Ende hinzugefügt haben, müssen Sie technisch nur die lokalen Regressionen anpassen, die den ersten und den letzten Punkt verwenden. Alle dazwischen liegenden lokalen Regressionen sind gleich. Wie viele dieser nicht betroffenen lokalen Regressionen es gibt, hängt von Ihrem Glättungsparameter im Löss ab.
Sie können jedes Paket hacken, das Sie für die Anpassung Ihres Modells verwenden, sodass die meisten lokalen Regressionen aus einer vorherigen Anpassung übernommen werden können und nur diejenigen, die am Anfang und Ende der Daten benötigt werden.
Es scheint mir jedoch, dass sich dies nur lohnt, wenn die Kosten für zusätzliche Programmierzeit wesentlich geringer sind als die Kosten für Computerzeit, wenn das Modell alle 15 Minuten von Grund auf neu montiert wird. Mit nur 1000 Datenpunkten ist es sicherlich nicht so wichtig, das Modell jedes Mal von Grund auf neu zu montieren.
quelle