1. 【Python時序預測系列】基於LSTM實現多變數時間序列預測(案例+源碼)
此文章探索基於LSTM在Python環境下,實現多變數時間序列預測的實踐。重點在於單站點多變數單步預測,以股票價格預測為案例。
首先,數據集被導入,包含5203條記錄。數據按照8:2的比例劃分為訓練集與測試集,其中訓練集有4162條數據,測試集有1041條數據。
為了進行預測,數據集需要進行歸一化處理。接著,使用滑動窗口技術構建LSTM數據集。窗口大小設為30,這樣前30天的數據作為特徵,預測第31天的某單一變數。訓練集構建後,數據量減少至4132個樣本,而測試集則有1011個樣本,旨在預測4163-5203區間內的數據。
LSTM模型在訓練集上進行建立與調整,然後用於預測。預測結果展示在測試集上,對比真實值與預測值,以評估模型表現。
為了驗證模型在新數據集上的預測能力,作者提供了一段代碼,演示如何在新的數據集上應用已訓練的模型進行預測。
作者擁有豐富的學術與工作經驗,專注於數據演算法研究,致力於以通俗易懂的方式分享Python、數據分析、機器學習等領域的知識。關注公眾號「數據雜壇」,獲取相關數據集與源代碼,持續學習並分享。
2. 時間序列預測Prophet模型及Python實現
Prophet模型是Facebook開發的,用於時間序列預測的靈活框架。該模型將時間序列分解為趨勢、季節性、假日效應和雜訊四個主要成分,以實現精準預測。模型提供加法和乘法兩種模型。在加法模型中,預測值為趨勢、季節性和假期效應的總和。乘法模型中,預測值是趨勢、季節性和假期效應的乘積。兩種模型適用於不同類型的時間序列,通常加法模型適用於與數據規模無關的趨勢和季節性,如氣溫、降雨量;而乘法模型適用於與數據規模相關的趨勢和季節性,如商品銷售量、股票價格。
Prophet庫的默認參數包括:時間戳為ds,時間序列值為y。數據預處理通常包括修改DataFrame的列名,使其符合ds和y的標准。數據通常需要進行歸一化操作。初始化模型後,進行擬合並預測時間序列。預測結果通常通過繪圖展示。周期性分解可用於分析特定周期模式。
提供兩個代碼示例,第一個示例採用線性形式的增長趨勢,第二個示例將增長趨勢更改為logistic形式,上限為3,以此展示模型預測時的增長動態。
Prophet庫的優點包括:靈活性高,適用於多種時間序列預測;易於使用,參數調整簡單;預測結果直觀。缺點可能包括:對數據的依賴性較高,可能需要較多數據以獲得准確預測;模型復雜度可能影響預測性能。使用時需要注意模型的適應性,選擇合適的模型類型,以及對數據的適當預處理。