矯豐霞
(中國石油大學(xué)勝利學(xué)院,山東東營 257000)
股票市場作為國家經(jīng)濟(jì)的組成部分,在經(jīng)濟(jì)發(fā)展中發(fā)揮著重要作用,其變化趨勢更被認(rèn)為是經(jīng)濟(jì)市場的“晴雨表”。隨著市場經(jīng)濟(jì)的發(fā)展和投資理念的深化,越來越多的人開始投身于股票市場,同時股價的變化趨勢也成為股民關(guān)注的焦點(diǎn)。但是股票市場數(shù)據(jù)量大、波動性強(qiáng),導(dǎo)致預(yù)測股票價格具有極大挑戰(zhàn)性。
股票價格預(yù)測采用的傳統(tǒng)方法包括基本面分析和技術(shù)分析[1],這些方法大多針對于線性模型,但由于股票市場噪聲高、波動性強(qiáng)等特點(diǎn),使得統(tǒng)計(jì)分析方法不能很好的抓住股票非線性波動的特點(diǎn),造成預(yù)準(zhǔn)確率不高。隨著機(jī)器學(xué)習(xí)的快速發(fā)展與廣泛應(yīng)用,神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)和決策樹等也被眾多學(xué)者應(yīng)用到股票價格預(yù)測中。Al-Fattah[2]利用遺傳算法和人工神經(jīng)網(wǎng)絡(luò)對油價進(jìn)行預(yù)測,實(shí)驗(yàn)結(jié)果表明該模型具有較高的預(yù)測準(zhǔn)確率。辛治遠(yuǎn)[3]將最小二乘支持向量機(jī)模型應(yīng)用于股市預(yù)測,將此方法與時間序列分析作對比,結(jié)果表明最小二乘支持向量機(jī)有著更高的預(yù)測精度和訓(xùn)練效率。相比于機(jī)器學(xué)習(xí),深度學(xué)習(xí)模型具有更好的非線性逼近能力,更適用于股價時間序列的預(yù)測。
圖1 LSTM記憶單元示意圖Fig.1 Schematic diagram of LSTM memory unit
LSTM神經(jīng)網(wǎng)絡(luò)是一種新型遞歸神經(jīng)網(wǎng)絡(luò)模型,可以進(jìn)一步解決RNN神經(jīng)網(wǎng)絡(luò)中存在的梯度下降快、無法得到最優(yōu)解的問題,LSTM神經(jīng)網(wǎng)絡(luò)已成為能有效處理與時間序列相關(guān)的學(xué)習(xí)模型,因此具有更加廣闊的應(yīng)用前景。本文提出了基于LSTM的股票價格預(yù)測模型,以股票市場的滬深300指數(shù)為研究對象,驗(yàn)證了該模型的有效性。
由Hochreiter[4]等人提出的長短時記憶(LSTM)循環(huán)神經(jīng)網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),RNN通過內(nèi)部多循環(huán)回路保證數(shù)據(jù)的持續(xù)傳遞,通過反向傳播的方式不斷調(diào)整權(quán)重,當(dāng)傳播到激活函數(shù)時,斜率會變得極大或極小,就會出現(xiàn)梯度爆照或梯度消失的問題。LSTM是為解決這一問題而出現(xiàn)的,LSTM結(jié)構(gòu)中不僅有外部的RNN循環(huán),還有內(nèi)部的自循環(huán),在自循環(huán)中增加了輸入門(input gate)、輸出門(output gate)和遺忘門(forget gate)用于控制細(xì)胞狀態(tài),這種結(jié)構(gòu)也使得LSTM能更好的控制信息流動。
LSTM主要由記憶單元、輸入門、輸出門和遺忘門組成,記憶單元用于存儲歷史數(shù)據(jù),輸入門用于控制當(dāng)前時刻的輸入數(shù)據(jù),遺忘門用于控制上一時刻的歷史數(shù)據(jù),輸出門用于控制當(dāng)前時刻的輸出數(shù)據(jù),通過這樣的結(jié)構(gòu)可以忽略掉不需要的數(shù)據(jù)并存儲需要的數(shù)據(jù),其單元結(jié)構(gòu)如圖1所示。
設(shè)Xt為t時刻的輸入數(shù)據(jù),ht為t時刻的隱藏層狀態(tài),LSTM單元的更新步驟如下:
(2)計(jì)算輸入門it的值,it的值取決于當(dāng)前時刻輸入數(shù)據(jù)xt、上一時刻輸出數(shù)據(jù)ht-1,其中Wi為輸入門層的權(quán)值向量,bi為輸入門層的偏置參數(shù),σ為激活函數(shù)。
(3)計(jì)算遺忘門的值ft,根據(jù)上一時刻的輸出和當(dāng)前時刻的輸入產(chǎn)生一個數(shù)值(0~1),ft代表上一個記憶單元中需要遺忘的信息權(quán)重。其中,σ為激活函數(shù),Wf為遺忘門層的權(quán)值向量,bf為遺忘門層的偏置參數(shù)。
(4)計(jì)算當(dāng)前時刻記憶單元狀態(tài)值ct,ct值的更新在忘記門和輸入門的控制下由自身狀態(tài)ct-1和前時刻候選記憶單元狀態(tài)值共同作用。
(5)計(jì)算輸出門的值ot,其中σ為激活函數(shù),Wo為輸出門層的權(quán)值向量,bo為輸出門層的偏置參數(shù)。
(6)最后計(jì)算LSTM的單元輸出值ht
利用LSTM模型對股票價格的波動情況進(jìn)行預(yù)測,方法是利用學(xué)習(xí)樣本,構(gòu)建輸入數(shù)據(jù)和輸出數(shù)據(jù)之間的非線性映射關(guān)系,在此關(guān)系的基礎(chǔ)上輸入新的數(shù)據(jù),得到的輸出數(shù)據(jù)就是預(yù)測結(jié)果。本文將LSTM模型應(yīng)用于滬深300股指收盤價的預(yù)測,樣本選取時間為2012年1月17日至2019年6月28日。
表1 指標(biāo)選取Tab.1 Index selection
模型的預(yù)測結(jié)果與輸入向量的選擇有關(guān),影響股票價格的因素眾多,本文從基本行情指標(biāo)和技術(shù)指標(biāo)中共選取7個指標(biāo)(如表1所示),其中基本行情指標(biāo)包括開盤價、收盤價、最高價、最低價以及成交量,技術(shù)指標(biāo)包括移動平均線(MA)、指數(shù)平滑異同平均線(MACD)。
本文將樣本數(shù)據(jù)分為三類,即訓(xùn)練集、驗(yàn)證集和測試集(如表2所示)。訓(xùn)練集用于訓(xùn)練LSTM模型,驗(yàn)證集用于調(diào)整神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來確定參數(shù),測試集用于評估模型的預(yù)測能力。
由于時間序列數(shù)據(jù)可能存在噪聲,因此利用小波變換去除噪聲以清洗數(shù)據(jù)。同時,由于各項(xiàng)指標(biāo)的數(shù)量級不同,為消除數(shù)據(jù)量級上的差距,需要對樣本特征進(jìn)行標(biāo)準(zhǔn)化處理,將數(shù)據(jù)縮放到0和1之間。
本文基于前9日的特征向量對第10日的收盤價進(jìn)行預(yù)測,時間序列長度為9。由表1可知,選取的特征向量數(shù)為14,因此,輸入層的神經(jīng)元個數(shù)為9*14。
LSTM神經(jīng)網(wǎng)絡(luò)中包含一個隱藏層,當(dāng)隱藏層中神經(jīng)元的數(shù)量過少時,會出現(xiàn)欠擬合的情況,當(dāng)神經(jīng)元的數(shù)量過多時,會出現(xiàn)過擬合的情況。因此,神經(jīng)元數(shù)量的確定關(guān)系著模型的預(yù)測能力,經(jīng)過實(shí)驗(yàn),選取隱藏層神經(jīng)元的個數(shù)為76。在深度學(xué)習(xí)中,學(xué)習(xí)率決定了目標(biāo)函數(shù)的收斂效果,適當(dāng)?shù)膶W(xué)習(xí)率能使目標(biāo)函數(shù)在合適的時間內(nèi)收斂到目標(biāo)最小值,經(jīng)過實(shí)驗(yàn),設(shè)置的學(xué)習(xí)率為0.001。
模型中優(yōu)化器的選擇同樣重要。本文參考學(xué)者SANG C等人[5]的研究(如表3所示),當(dāng)數(shù)據(jù)量相等時,Adam優(yōu)化器在訓(xùn)練時間以及熵?fù)p失上都具有較好的性能。Adam優(yōu)化器計(jì)算效率高,所以適合用于較大數(shù)據(jù)量的股票數(shù)據(jù)。
基于LSTM的股票價格預(yù)測模型的具體參數(shù)如表4所示。
利用python基于Keras框架進(jìn)行實(shí)驗(yàn),模型預(yù)測結(jié)果如圖2、表5所示。圖2中實(shí)線表示股票收盤價的實(shí)際值,虛線表示股票收盤價的預(yù)測值,橫坐標(biāo)為時間,縱坐標(biāo)為股票價格。
表2 樣本數(shù)據(jù)劃分說明Tab.2 Description of sample data division
表3 不同優(yōu)化器的比較Tab.3 Comparison of different optimizers
表4 模型參數(shù)Tab.4 Model parameters
表5 模型的評價指標(biāo)Tab.5 Evaluation indicators of the model
圖2 模型預(yù)測值與真實(shí)值的對比圖Fig.2 Comparison of model predicted value and true value
用于評價模型性能的指標(biāo)有均方根誤差(RMSE)和平均絕對誤差(MAE),公式如下:
其中,xprdict,i代表預(yù)測值,xreal,i代表實(shí)際值,N代表預(yù)測窗口。
從圖2中可以看到,通過LSTM模型預(yù)測的收盤價和實(shí)際的收盤價走勢大致一致,且擬合情況較好。從表5中的數(shù)據(jù)可以看到,模型的均方根誤差和平均絕對誤差都相對較低。由實(shí)驗(yàn)結(jié)果可知,本文所建立的LSTM模型對股票價格的預(yù)測有較好的預(yù)測效果。
預(yù)測股票價格的走勢一直都是股票市場研究的熱點(diǎn),本文提出一種基于LSTM神經(jīng)網(wǎng)絡(luò)的股票價格預(yù)測模型,并用滬深300指數(shù)進(jìn)行實(shí)驗(yàn),對滬深300指數(shù)的收盤價進(jìn)行預(yù)測,實(shí)驗(yàn)結(jié)果表明該模型具有較高的預(yù)測準(zhǔn)確度。