Time-Series

使用機器學習方法時,是否有必要對時間序列數據進行去趨勢和循環?

  • June 29, 2012

例如:

我想使用 ANN 和/或 SVM 根據多個時間序列的先前值來預測時間序列的未來值。輸入將是每個時間序列的滯後值,輸出將是提前一步的預測(具有更遠視野的預測將通過使用先前的預測“滾動”預測來完成)。

現在,SVM 和 ANN 不應該能夠學習趨勢和周期嗎?他們不能學習諸如“在所有其他條件相同的情況下,這個系列的輸出應該是之前輸出的 2 倍”之類的東西嗎?或者,如果我為月份提供一個分類變量,“因為現在是 1 月,將我所做的預測除以 2?”

試圖對數據進行循環和去趨勢化會導致施加比必要更多的偏見嗎?

對於機器學習算法,使用特徵縮放或歸一化來幫助算法在訓練期間快速收斂並避免一組特徵支配另一組特徵通常是有益的。以預測股票價格的問題為例。如果您將蘋果或微軟等高價股票與一些低價股一起包括在內,那麼您必然會從蘋果和微軟的價格中提取的高價值特徵將壓倒您從低價股中提取的那些特徵,並且您不會在蘋果對蘋果的基礎(沒有雙關語!),由此產生的訓練模型可能不能很好地概括。

但是,恕我直言, *“嘗試對數據進行循環和去趨勢化”*將是一件非常好的事情。提取各種循環和趨勢分量並通過減去它們各自的平均值並除以它們的標準差來歸一化它們會將所有時間序列的所有數據置於相同的近似範圍內,然後您將訓練喜歡喜歡的數據,當通過反轉歸一化重新縮放,可能會更好地泛化用於預測目的。

此外,對於任何時間序列,趨勢可能會淹沒循環分量,因此您可能最終只訓練趨勢數據,這些數據幾乎肯定不會在循環時間序列上表現良好,反之亦然。通過分離這兩個組件並使用單獨的 SVM 或 NN 對每個組件進行訓練,然後重新組合這兩個預測,您最終可能會得到一個更準確且更易於推廣的算法。

引用自:https://stats.stackexchange.com/questions/31387

comments powered by Disqus