Python電力負荷:ARIMA、LSTM神經網絡時間序列預測分析

2023-04-05     tecdat拓端

原標題:Python電力負荷:ARIMA、LSTM神經網絡時間序列預測分析

全文連結:http://tecdat.cn/?p=32059

原文出處:拓端數據部落公眾號

分析師:Eileen

電力系統源源不斷向各用戶提供持續穩定的電能,本文通過對數據的提取,幫助客戶分別對不同客戶端日,月,年的用電負荷情況進行分析,並通過模型對單戶負荷情況進行預測。

解決方案

任務/目標

本課題的數據分析對象是電力在2011-2014年的370個客戶端的耗電數據,根據預測負荷可以安排發電廠發電機組的啟停,降低儲備容量的浪費,節約成本。

數據源準備

負荷預測是用歷史負荷建立模型來預測未來負荷的方法,因此歷史數據收集的數量、質量直接決定了負荷預測的準確性。所以在負荷預測前,需要收集大量的歷史負荷數據、天氣數據等。這些數據由於一些因素可能會造成數據的缺失,需要利用一些方法去填補缺失值,提高負荷預測的精確度。

本項目採用均值填補法,找到所有有缺失值的列,用各列的均值填充缺失值。

數據分析

通過曲線類圖像,以特定時間周期所統計的負荷值為縱坐標來畫出負荷/時間的關係曲線,呈現負荷的大小及發展趨勢。例如年、月、季、天等指標。

劃分訓練集和測試集

對樣本集拆分成訓練集和測試集

values = reframed.values

n_train_time = 365*24*3

train = values[:n_train_time, :]

test = values[n_train_time:, :]

考慮到最終模型會預測將來的某時間段的數據,為了更真實的測試模型效果,以時間來切分訓練集和測試集。具體做法如下:假設我們有2011-2014的客戶端耗電數據。以2011 ~ 2013的數據作為訓練,以2013 ~ 2014的數據作為測試。

建模

LSTM 模型, 時間序列預測分析就是利用過去一段時間內某事件時間的特徵來預測未來一段時間內該事件的特徵,將問題轉化為監督學習問題。將特徵進行規範化、歸一化,進而搭建網絡模型、訓練網絡。

ARIMA 一般應用在股票和電商銷量領域

該模型用於使用觀察值和滯後觀察值的移動平均模型殘差間的依賴關係,我採用了擬合ARIMA(5,1,0)模型,將自回歸的滯後值設為5,使用1的差分階數使時間序列平穩,使用0的移動平均模型。

在此案例中,運用2種方法預測電力負荷,其可視化圖形如下:

ARIMA模型

LSTM模型

可以看出,預測值的趨勢已經基本與真實趨勢保持一致,但是在預測期較長的區間段,其預測值之間的差別較大。

關於分析師

在此對Eileen對本文所作的貢獻表示誠摯感謝,她專注數據處理、數據分析、數據預測領域。擅長Python、數據分析。

最受歡迎的見解

1.R語言實現CNN(卷積神經網絡)模型進行回歸

2.r語言實現擬合神經網絡預測和結果可視化

3.python用遺傳算法-神經網絡-模糊邏輯控制算法對樂透分析

4.R語言結合新冠疫情COVID-19股票價格預測:ARIMA,KNN和神經網絡時間序列分析

5.Python TensorFlow循環神經網絡RNN-LSTM神經網絡預測股票市場價格時間序列和MSE評估準確性

6.Matlab用深度學習長短期記憶(LSTM)神經網絡對文本數據進行分類

7.用於NLP的seq2seq模型實例用Keras實現神經機器翻譯

8.R語言用FNN-LSTM假近鄰長短期記憶人工神經網絡模型進行時間序列深度學習預測

9.Python用RNN循環神經網絡:LSTM長期記憶、GRU門循環單元、回歸和ARIMA對COVID-19新冠疫情新增人數時間序列預測

文章來源: https://twgreatdaily.com/zh-hk/48a2510da42b973f69e41e3f99ba5b8b.html