陸澤楠+商玉林
【摘 要】由于鋼鐵價格具有影響因子難以確定和非線性的特點,在數據挖掘預測分析是,傳統(tǒng)的預測方法只能夠對鋼鐵價格進行小數據量的分析,導致預測精度低、速度慢且效率低下。隨著大數據的深入研究,將神經網絡與spark相結合,能滿足用戶對實時數據處理的需求。在多個深度學習神經網絡模型中,基于長短期記憶單元(Long Short-term memory,LSTM)的遞歸神經網絡(recurrent neural network,RNN)模型因為其能有效利用序列數據中長距離依賴信息的能力,非常適用于價格指數的預測中。文章利用python和lstm,結合近幾年鋼鐵交易價格的走勢數據,對數據進行回歸擬合,生成訓練模型,然后將得出的模型用來對未來的鋼鐵交易價格進行預測,使用均方誤差(MSE)對預測數據和原始數據進行誤差分析與處理,并與支持向量回歸(SVR)模型進行對比。
【關鍵詞】大數據;LSTM;RNN;MSE;SVR;價格指數預測
【Abstract】Because of the characteristics of steel prices is difficult to determine the impact factor and nonlinear, in data mining prediction analysis, analysis of the traditional prediction methods can only be a small amount of data on steel prices, resulting in low prediction accuracy, slow speed and low efficiency.With the deep research of large data, the combination of neural network and spark can meet the needs of users for real-time data processing. In multiple depth learning neural network models, The recurrent neural network model based on long and short memory units is very suitable for the prediction of price index because it can effectively utilize the ability of long distance dependence information in sequence data. The use of Python and LSTM, combined with the trend of steel price data in recent years, the data fitting, the generation of the training model, then the model is used to predict the future price of steel trading, analysis and handle the error of forecast data and the original data using mean square error, and with the support vector regression model comparison.
【Key words】Big Data;LSTM;RNN;MSE;SVR;Price index forecasting
0 前言
鋼鐵生產在國民經濟中具有舉足輕重的地位,是社會發(fā)展的重要物質保障。中國近50年來在鋼鐵行業(yè)有著突飛猛進的發(fā)展。鋼鐵價格的波動對國民經濟以及相關行業(yè)帶來深遠的影響。導致鋼鐵價格波動的因素有很多,既有來自宏觀經濟的影響,又有生產成本、供求關系、國際貿易、國家政策等諸多因素。因此,鋼鐵價格的預測是當前國內外數據挖掘、機器學習應用研究的熱點。目前,對鋼鐵價格預測研究的算法主要有線性回歸法、小波分解算法、支持向量機法、聚類分析法等[1]。
在大數據時代,一個好的預測方法可以為決策者提供強有力的決策依據。其不僅可以準確地預測價格的走勢,還可以預測顧客對商品的需求,從而讓生產者有效地安排生產、減少企業(yè)的庫存、合理安排物流、提高企業(yè)的生產效率、提高顧客對企業(yè)的滿意程度、綜合提高企業(yè)的競爭力。目前用于預測的方法有很多,主要的預測方法有:移動平均預測法、指數平滑預測法、趨勢外推預測法、回歸預測法、灰色預測法、移動自回歸預測法、機器學習法[2]。
本文基于近10年鋼鐵交易價格數據,分別從單因子和雙因子方面,將LSTM與SVR這兩個模型進行對比分析,得出最優(yōu)預測模型。
1 研究對象
對近十年鋼鐵交易價格數據進行數據處理,分別得到單因子(圖1)與雙因子(圖2)兩份csv數據。其中單因子為鋼鐵交易價格,雙因子為鋼鐵交易價格與對應的成交量。
2 研究方法
長短期記憶人工神經網絡(Long-Short Term Memory,LSTM)是一種改進的時間循環(huán)神經網絡(Recurrent Neural Network,RNN)。LSTM可以學習時間序列長短期依賴信息,由于神經網絡中包含時間記憶單元,因此適用于處理和預測時間序列中的間隔和延遲事件。
循環(huán)神經網絡(RNN)可以被看做是同一神經網絡的多次復制,每個神經網絡模塊會把消息傳遞給下一個(見圖3)。
LSTM 通過刻意的設計來避免長期依賴問題,其每個神經元中包含四個交互的層(見圖4),分別為忘記門層、輸入門層、更新門層以及輸出門層。
3 應用分析
3.1 LSTM模型單因子預測
首先,基于序貫模型(keras)搭建三層RNN神經網絡模型,每層神經網絡結構中均包含LSTM神經網絡單元。其中第一層為1個輸入單元,50個輸出單元;第二層為50個輸入單元,100個輸出單元;最后一層為100個輸入單元,1個輸出單元。誤差函數為均方誤差(mse)函數,激活函數為rmsprop。
接下來,對3078條每日的鋼鐵價格數據進行模型訓練,現(xiàn)將數據歸一化,處理為-1到1區(qū)間內的數,便于訓練模型的確立。每5條數據分為一組訓練數據,后一條數據為標簽數據。模型重復訓練100次,得以下結果(圖5):
均方誤差為:0.00847638923468,最終預測值為:3666.215308904648
根據多次改變模型層數,重復訓練次數等方面得出的結果分析,隨著訓練次數的減少,模型擬合不理想;訓練次數增加,模型會過擬合。因此,對于單因子數據,取100次訓練次數,能得到較好的預測模型。
3.2 LSTM模型雙因子預測
首先,因為序貫模型(keras)只適用于單因子,因此需要自定義模型結構。分別定義獲取訓練集函數與獲取測試集函數,訓練集個數與測試集個數比為10:1,并分別將它們歸一化。再定義神經網絡變量,即輸入層、輸出層的權重、偏置。最后定義LSTM神經網絡,確定輸入與輸出數據維度。對模型進行100次重復訓練后,進行預測,得以下結果(圖6):
均方誤差為:0.00428824,最終預測值為:3746.97504515
因為多因子關聯(lián)影響的原因,不同訓練次數,導致模型擬合效果不同。因此,接下來分別對不同訓練次數進行預測對比,以下是200次、300次、400次以及500次重復訓練的誤差值、預測值以及訓練時間(表1)。
對比單因子和不同訓練次數下雙因子的誤差值,在重復訓練300次時,模型擬合最好,預測值也最接近真實值。因此可以將此模型保存,存在實用價值。
3.3 SVR模型雙因子預測
作為對比,本文也使用支持向量回歸(SVR)模型,對相同雙因子數據進行分析預測。SVR模型分別從RBF、Linear以及Polynomial這三個核函數進行訓練預測,得出以下結果(圖7):
與LSTM模型相比,SVR耗時長、精度低、實用性低,因此不提倡使用此模型。
4 總結
鋼鐵的價格變化波動不定,傳統(tǒng)的預測方法僅僅能夠對少量的數據進行預測分析。本文采用了LSTM神經網絡預測算法,建立了新的預測模型,對鋼鐵交易價格的數據進行預測分析。實驗結果表明,LSTM神經網絡可以有效地預測鋼鐵的價格走勢,不僅比傳統(tǒng)的預測方法速度更快,而且精度更高,具有很好的應用前景。
【參考文獻】
[1]朱靖翔,張濱,樂嘉錦.基于內存計算的鋼鐵價格預測算法研究.東華大學計算機科學與技術學院,上海201620.
[2]彭巖,王萬森,王旭仁.基于機器學習的風險預測方法研究[J].計算機科學,2009,36(4):205-207.
[責任編輯:朱麗娜]