1. 序列預測介紹
序列預測就是根據過去的序列數據(比如時間順序的數據),預測未來的結果。
? 單步預測:只預測下一個時刻的值。比如根據前7天的氣溫,只預測第8天的氣溫。
? 多步預測的2種方式:
? 遞歸式:先預測下一個值,再把這個預測值當實際值,繼續預測后面的值。比如用前7天預測第8天,再用第5-8天(其中第8天是預測的)預測第9天。
? 直接式:一次性預測出未來多個值。比如根據前7天,直接同時預測第8、9、10天的氣溫。
2. 序列數據的處理:滑動窗口
把連續的序列數據切成一個個小片段(窗口),每個窗口包含固定數量的歷史數據,用來預測后面的值。
比如有數據[1,2,3,4,5,6],窗口大小設為3,滑動步長1,就會得到窗口[1,2,3]預測4、[2,3,4]預測5、[3,4,5]預測6,這樣能把序列數據變成適合模型學習的樣本。
3. 多輸入多輸出任務的思路
指輸入是多個序列數據,同時要輸出多個序列結果。
思路是讓模型同時學習多個輸入和輸出之間的關系,比如用溫度、濕度、風速(多輸入)同時預測未來的溫度、降雨量(多輸出),模型在訓練時會綜合考慮所有輸入對所有輸出的影響。
4. 經典機器學習在序列任務上的劣勢(以隨機森林為例)
? 不擅長捕捉序列的時間依賴關系:隨機森林處理的是獨立樣本,無法理解數據的先后順序(比如今天的氣溫和昨天的關聯)。
? 固定輸入長度:需要用滑動窗口把序列切成固定長度的樣本,無法靈活處理不同長度的序列。
? 忽略長期依賴:對于間隔較遠的重要信息(比如上個月的 rainfall 影響這個月的作物生長),很難有效學習到。