時間序列預測的演算法繁多,讓人眼花繚亂。在 5 分鐘內,我將分享 5 年來使用 8 種常見預測演算法的經驗。
1.ARIMA(自迴歸整合移動平均):
使用線性迴歸作為基礎模型。捕捉自迴歸和移動平均項,同時對原始觀測資料的差分進行積分(使時間序列靜止)。僅限本地(每個時間序列都需要迴圈)。AutoARIMA 是首選的實現方法。
2.Prophet:
由 Facebook 開發的預測工具。專為具有日觀測資料和季節性模式的資料而設計,採用一個包含年、周和日成分的加法模型。本地預測(需要迴圈)。
3.LSTM(長短期記憶):
深度學習中使用的一種遞迴神經網路(RNN)。它專為避免長期依賴性問題而設計,因此對時間序列非常有效。我的首選實現是 AWS 的 GluonTS DeepAR。
4.霍爾特-溫特斯方法(Holt-Winters Method):
這是一種統計預測技術,應用指數平滑法捕捉時間序列資料中的趨勢和季節性。適用於具有明顯趨勢和季節性模式的資料。指數平滑法的一種特例。
5.SARIMA(Seasonal ARIMA):
是 ARIMA 的擴充套件,包含了季節性。專為具有非季節性和季節性成分的時間序列而設計,使其比標準 ARIMA 模型更加靈活。AutoARIMA 是我的首選實現方法。
6.指數平滑法:
對過去的觀測資料應用指數遞減權重。最適合短期預測,對沒有趨勢或季節性模式的資料尤其有效。ETS(指數-趨勢-平滑)是我首選的實現方法。
7.隨機森林
一種集合學習方法,可生成許多決策樹。預測結果是單個決策樹的平均預測結果。全域性或區域性。可擴充套件。由於基於樹的演算法問題,無法預測最大/最小值。
8.XGBoost:
梯度提升的高效、可擴充套件實現。因其在處理各種型別的預測建模任務時的高效能和靈活性而聞名。只要進行了特徵工程,就能很好地檢測複雜的季節性。全域性或區域性。無法預測全域性最小/最大值。