矯豐霞
(中國石油大學勝利學院,山東東營 257000)
股票市場作為國家經濟的組成部分,在經濟發展中發揮著重要作用,其變化趨勢更被認為是經濟市場的“晴雨表”。隨著市場經濟的發展和投資理念的深化,越來越多的人開始投身于股票市場,同時股價的變化趨勢也成為股民關注的焦點。但是股票市場數據量大、波動性強,導致預測股票價格具有極大挑戰性。
股票價格預測采用的傳統方法包括基本面分析和技術分析[1],這些方法大多針對于線性模型,但由于股票市場噪聲高、波動性強等特點,使得統計分析方法不能很好的抓住股票非線性波動的特點,造成預準確率不高。隨著機器學習的快速發展與廣泛應用,神經網絡、支持向量機和決策樹等也被眾多學者應用到股票價格預測中。Al-Fattah[2]利用遺傳算法和人工神經網絡對油價進行預測,實驗結果表明該模型具有較高的預測準確率。辛治遠[3]將最小二乘支持向量機模型應用于股市預測,將此方法與時間序列分析作對比,結果表明最小二乘支持向量機有著更高的預測精度和訓練效率。相比于機器學習,深度學習模型具有更好的非線性逼近能力,更適用于股價時間序列的預測。

圖1 LSTM記憶單元示意圖Fig.1 Schematic diagram of LSTM memory unit
LSTM神經網絡是一種新型遞歸神經網絡模型,可以進一步解決RNN神經網絡中存在的梯度下降快、無法得到最優解的問題,LSTM神經網絡已成為能有效處理與時間序列相關的學習模型,因此具有更加廣闊的應用前景。本文提出了基于LSTM的股票價格預測模型,以股票市場的滬深300指數為研究對象,驗證了該模型的有效性。
由Hochreiter[4]等人提出的長短時記憶(LSTM)循環神經網絡是一種特殊的循環神經網絡,RNN通過內部多循環回路保證數據的持續傳遞,通過反向傳播的方式不斷調整權重,當傳播到激活函數時,斜率會變得極大或極小,就會出現梯度爆照或梯度消失的問題。LSTM是為解決這一問題而出現的,LSTM結構中不僅有外部的RNN循環,還有內部的自循環,在自循環中增加了輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)用于控制細胞狀態,這種結構也使得LSTM能更好的控制信息流動。
LSTM主要由記憶單元、輸入門、輸出門和遺忘門組成,記憶單元用于存儲歷史數據,輸入門用于控制當前時刻的輸入數據,遺忘門用于控制上一時刻的歷史數據,輸出門用于控制當前時刻的輸出數據,通過這樣的結構可以忽略掉不需要的數據并存儲需要的數據,其單元結構如圖1所示。
設Xt為t時刻的輸入數據,ht為t時刻的隱藏層狀態,LSTM單元的更新步驟如下:

(2)計算輸入門it的值,it的值取決于當前時刻輸入數據xt、上一時刻輸出數據ht-1,其中Wi為輸入門層的權值向量,bi為輸入門層的偏置參數,σ為激活函數。

(3)計算遺忘門的值ft,根據上一時刻的輸出和當前時刻的輸入產生一個數值(0~1),ft代表上一個記憶單元中需要遺忘的信息權重。其中,σ為激活函數,Wf為遺忘門層的權值向量,bf為遺忘門層的偏置參數。

(4)計算當前時刻記憶單元狀態值ct,ct值的更新在忘記門和輸入門的控制下由自身狀態ct-1和前時刻候選記憶單元狀態值共同作用。

(5)計算輸出門的值ot,其中σ為激活函數,Wo為輸出門層的權值向量,bo為輸出門層的偏置參數。

(6)最后計算LSTM的單元輸出值ht

利用LSTM模型對股票價格的波動情況進行預測,方法是利用學習樣本,構建輸入數據和輸出數據之間的非線性映射關系,在此關系的基礎上輸入新的數據,得到的輸出數據就是預測結果。本文將LSTM模型應用于滬深300股指收盤價的預測,樣本選取時間為2012年1月17日至2019年6月28日。

表1 指標選取Tab.1 Index selection
模型的預測結果與輸入向量的選擇有關,影響股票價格的因素眾多,本文從基本行情指標和技術指標中共選取7個指標(如表1所示),其中基本行情指標包括開盤價、收盤價、最高價、最低價以及成交量,技術指標包括移動平均線(MA)、指數平滑異同平均線(MACD)。
本文將樣本數據分為三類,即訓練集、驗證集和測試集(如表2所示)。訓練集用于訓練LSTM模型,驗證集用于調整神經網絡結構來確定參數,測試集用于評估模型的預測能力。
由于時間序列數據可能存在噪聲,因此利用小波變換去除噪聲以清洗數據。同時,由于各項指標的數量級不同,為消除數據量級上的差距,需要對樣本特征進行標準化處理,將數據縮放到0和1之間。
本文基于前9日的特征向量對第10日的收盤價進行預測,時間序列長度為9。由表1可知,選取的特征向量數為14,因此,輸入層的神經元個數為9*14。
LSTM神經網絡中包含一個隱藏層,當隱藏層中神經元的數量過少時,會出現欠擬合的情況,當神經元的數量過多時,會出現過擬合的情況。因此,神經元數量的確定關系著模型的預測能力,經過實驗,選取隱藏層神經元的個數為76。在深度學習中,學習率決定了目標函數的收斂效果,適當的學習率能使目標函數在合適的時間內收斂到目標最小值,經過實驗,設置的學習率為0.001。
模型中優化器的選擇同樣重要。本文參考學者SANG C等人[5]的研究(如表3所示),當數據量相等時,Adam優化器在訓練時間以及熵損失上都具有較好的性能。Adam優化器計算效率高,所以適合用于較大數據量的股票數據。
基于LSTM的股票價格預測模型的具體參數如表4所示。
利用python基于Keras框架進行實驗,模型預測結果如圖2、表5所示。圖2中實線表示股票收盤價的實際值,虛線表示股票收盤價的預測值,橫坐標為時間,縱坐標為股票價格。

表2 樣本數據劃分說明Tab.2 Description of sample data division

表3 不同優化器的比較Tab.3 Comparison of different optimizers

表4 模型參數Tab.4 Model parameters

表5 模型的評價指標Tab.5 Evaluation indicators of the model

圖2 模型預測值與真實值的對比圖Fig.2 Comparison of model predicted value and true value
用于評價模型性能的指標有均方根誤差(RMSE)和平均絕對誤差(MAE),公式如下:

其中,xprdict,i代表預測值,xreal,i代表實際值,N代表預測窗口。
從圖2中可以看到,通過LSTM模型預測的收盤價和實際的收盤價走勢大致一致,且擬合情況較好。從表5中的數據可以看到,模型的均方根誤差和平均絕對誤差都相對較低。由實驗結果可知,本文所建立的LSTM模型對股票價格的預測有較好的預測效果。
預測股票價格的走勢一直都是股票市場研究的熱點,本文提出一種基于LSTM神經網絡的股票價格預測模型,并用滬深300指數進行實驗,對滬深300指數的收盤價進行預測,實驗結果表明該模型具有較高的預測準確度。