摘要:本文首先確定了反映股票交易數(shù)據(jù)的特征指標,構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型和LSTM神經(jīng)網(wǎng)絡(luò)模型,并將它們應(yīng)用于上證綜指狀態(tài)的分類預(yù)測。實驗通過對兩種模型應(yīng)用結(jié)果的比較,驗證了LSTM模型在時序數(shù)據(jù)的預(yù)測分析上較BP神經(jīng)網(wǎng)絡(luò)有十分顯著的優(yōu)勢。BP神經(jīng)網(wǎng)絡(luò)的預(yù)測準確率為66.98%,而LSTM的準確率達到了87.4%,充分驗證了所設(shè)計模型的有效性。
關(guān)鍵詞:股票預(yù)測;神經(jīng)網(wǎng)絡(luò);LSTM;分類預(yù)測
1.引言
股票市場對商品市場有著十分重要的影響,它的走勢一定程度上也能反應(yīng)國家經(jīng)濟狀況。上證綜指反應(yīng)了整個上海證券市場的股票價格總趨勢及漲跌幅度,如果能夠較好地對其漲跌進行預(yù)測,對投資者進行投資的風(fēng)險控制和收益最大化來說有著巨大的實際應(yīng)用價值。
BP神經(jīng)網(wǎng)絡(luò)是當(dāng)前使用最廣泛的神經(jīng)網(wǎng)絡(luò)模型之一。它能夠在不知道具體映射關(guān)系的情況下,通過學(xué)習(xí)輸入數(shù)據(jù),依靠所確定的目標函數(shù),使網(wǎng)絡(luò)結(jié)構(gòu)誤差最小化,完成模型訓(xùn)練。誤差逆向傳播的原理是利用網(wǎng)絡(luò)輸出和真實標簽之間的誤差進行反向傳播逐層更新并縮小每一層誤差。
近年來關(guān)于長短期記憶神經(jīng)網(wǎng)絡(luò)的應(yīng)用開始逐漸出現(xiàn),它是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)。國內(nèi)外在股票市場預(yù)測領(lǐng)域使用較廣泛的都是BP神經(jīng)網(wǎng)絡(luò)及其各種優(yōu)化算法。而LSTM神經(jīng)網(wǎng)絡(luò)主要被用在自然語言處理方面,在金融預(yù)測領(lǐng)域使用較少。2016年Luca Di Persio等人使用了MLP、CNN、RNN等多種模型來對S&P500的日交易數(shù)據(jù)進行預(yù)測,說明了RNN在股票趨勢預(yù)測方面有著自己的優(yōu)勢。
本文主要將日線交易數(shù)據(jù)進行特征提取,通過建立神經(jīng)網(wǎng)絡(luò)模型,實現(xiàn)對未來T+1天上證綜指的漲、跌、持平三種狀態(tài)的預(yù)測。本文對BP神經(jīng)網(wǎng)絡(luò)和LSTM神經(jīng)網(wǎng)絡(luò)這兩種模型進行比較,利用歸一化、dropout等工具優(yōu)化模型,最終應(yīng)用到上證綜指狀態(tài)預(yù)測中,比較兩者模型的實驗結(jié)果,證明模型的適用性和準確性以及模型的泛化能力。
2.樣本數(shù)據(jù)預(yù)處理
考慮到2008年金融危機股市波動較大,故本文采用2009年1月1日至2019年4月1日10年余的共2490條上證綜指的日交易數(shù)據(jù)。數(shù)據(jù)來源于網(wǎng)易財經(jīng)。
根據(jù)分析,本文選取收盤價、最高價、最低價、開盤價、成交量、10日ROC、14日RSI、14日CMO、10日MA、20日EMA、MACD、9日KDJ、調(diào)整的OBV差值等17個特征指標作為反應(yīng)上證綜指交易信息、指數(shù)走勢等的特征進行實驗,特征提取使用python中的Talib庫。
由于數(shù)據(jù)中幾個特征的維度不一致,因此本文將對各個輸入變量特征數(shù)據(jù)進行歸一化處理。歸一化處理能夠把數(shù)據(jù)的量級范圍控制在0到1之間,使得各個變量特征在誤差逆向傳播過程中,更新步長與數(shù)據(jù)的數(shù)量級一致,可以提升模型的收斂速度和預(yù)測精度。歸一化函數(shù)計算公式如下:
本文將T+1天上證綜指的狀態(tài)分為三類,分別為:上漲、持平、下跌。T+1天上證綜指狀態(tài)持平的閾值設(shè)為0.5%,即上漲幅度大于0.5%即認為上漲,下跌亦然,這樣選擇閾值的原因是為了保證樣本在三種狀態(tài)下分布大致均勻。
3.模型與實驗
3.1BP神經(jīng)網(wǎng)絡(luò)模型
BP神經(jīng)網(wǎng)絡(luò)一般分為三個層,輸入層、隱藏層和輸出層。每一層上都有許多神經(jīng)元節(jié)點,層與層之間的神經(jīng)元節(jié)點相互連接,完全連接的神經(jīng)元層稱為全連接層。每一層的神經(jīng)元節(jié)點都有一個權(quán)值參數(shù)稱為連接的權(quán)重,后一層的輸入為前一層的輸出乘以前一層的權(quán)重加上一個偏置(bias)并經(jīng)過一個激活函數(shù)。
BP神經(jīng)網(wǎng)絡(luò)的向前傳播公式如下:
其中,X是輸入的數(shù)據(jù)特征向量,維度是17;b1是第一層的偏置向量,維度等于隱藏層單元的個數(shù)n;W1是第一層的權(quán)值參數(shù)矩陣n×17,維度是;b2是第二層的偏置向量,維度等于3;W2是第二層的權(quán)值參數(shù)矩陣,維度是3×n;? ?是輸出的估計值,該估計值的每個維度的數(shù)表示屬于各個類別的概率值。
BP神經(jīng)網(wǎng)絡(luò)的隱藏層激活函數(shù)全部選擇Sigmoid函數(shù),這也是一般BP神經(jīng)網(wǎng)絡(luò)最普遍運用的一個激活函數(shù),它能將任意范圍的數(shù)映射到0到1之間。由于本文研究的是三分類問題,因此輸出層激活函數(shù)將采用Softmax函數(shù),相應(yīng)的損失函數(shù)選擇多分類交叉熵函數(shù),反向傳播的優(yōu)化算法選擇Adam算法。
對于BP神經(jīng)網(wǎng)絡(luò)來說,隱藏層的節(jié)點個數(shù)合適與否將是模型效果好壞的關(guān)鍵。本文將不同數(shù)量隱藏層節(jié)點個數(shù)的模型進行準確性比較,由此得到最適合的節(jié)點個數(shù)。
3.2長短時記憶模型
長短時記憶模型是一種特定形式的循環(huán)神經(jīng)網(wǎng)絡(luò),但LSTM單元比RNN單元性能更好,收斂更快,能夠感知數(shù)據(jù)的長時依賴。
LSTM單元內(nèi)部傳播由三個門進行控制,遺忘門和更新門負責(zé)對時序數(shù)據(jù)的特征進行篩選控制,提取隱藏的信息進行長時記憶,輸出門則負責(zé)向后一個單元進行數(shù)據(jù)輸入,或者進行結(jié)果輸出。
本文使用的LSTM模型預(yù)測方式為利用前14個交易日的交易數(shù)據(jù)及各個指標特征實現(xiàn)對T+1天指數(shù)狀態(tài)的預(yù)測。因此,模型設(shè)計為14個連接的LSTM單元,各個LSTM單元的權(quán)值參數(shù)共享,設(shè)置α[t]隱藏層的神經(jīng)元個數(shù)為30個。
3.3實證分析
模型訓(xùn)練所使用的數(shù)據(jù)按8:2的比例劃分為訓(xùn)練集和測試集,在用訓(xùn)練集訓(xùn)練模型的時候又將訓(xùn)練集按9:1的比例劃分出驗證集。
本為分別設(shè)置三層BP神經(jīng)網(wǎng)絡(luò)的隱藏層神經(jīng)元個數(shù)為20、30、40,分別在30和40個神經(jīng)元的網(wǎng)絡(luò)隱藏層后面都加入了Dropout層以防止模型發(fā)生過擬合。Dropout層的參數(shù)設(shè)置為0.2,表示隨機丟掉20%的神經(jīng)元個數(shù)。迭代次數(shù)根據(jù)模型擬合需要分別選有700次和800次。
表1是BP網(wǎng)絡(luò)(模型1-5)和LSTM網(wǎng)絡(luò)(模型6、7)訓(xùn)練模型的準確率結(jié)果表。
由準確率結(jié)果表可以看出,BP網(wǎng)絡(luò)模型隱藏層神經(jīng)元個數(shù)為20、30、40的三個模型的準確率相差并不是很大,準確率均在65%到66%之間。三個模型在訓(xùn)練過程階段的擬合效果均不錯,但在測試集上的準確率明顯低于模型訓(xùn)練時的準確率,由此可以看出模型的泛化能力有待提高,都存在較輕較重的過擬合現(xiàn)象。分別在隱藏層神經(jīng)元個數(shù)為30、40的模型隱藏層之后添加一層Dropout層之后,能夠明顯改善模型的過擬合現(xiàn)象,提高模型的泛化能力,并且模型在測試集中應(yīng)用的準確率也略有提高,這說明Dropout工具能夠顯著改善模型的適用性和準確性以及模型的泛化能力。
從準確率來看,五個模型在測試集上的準確率均在65%到67%之間,五個模型的準確性相去不大。而從模型訓(xùn)練效果和泛化能力來講,模型3要略優(yōu)于另外四個模型,在三個數(shù)據(jù)集上的準確率十分穩(wěn)定,均在66%到67%之間。
LSTM單元隱藏層節(jié)點設(shè)置為30個,由于LSTM層較深,易產(chǎn)生過擬合現(xiàn)象,因此本文在LSTM層之后又添加了一個Dropout層,Dropout層參數(shù)設(shè)置為0.4。模型迭代次數(shù)為120次。
LSTM模型6在訓(xùn)練集上的準確率達到了91.46%,在驗證集上為87.24%,而在測試集上較低,為86.83%??梢钥闯鯨STM網(wǎng)絡(luò)模型過擬合現(xiàn)象較BP網(wǎng)絡(luò)模型要更為嚴重,在訓(xùn)練模型的時候就已經(jīng)出現(xiàn)了過擬合。添加了Dropout層的模型7的準確率在三個數(shù)據(jù)集上十分相近,顯著提高了模型的泛化能力。從測試集上的準確率來看,模型7較模型6略有提高,這說明模型的適用性和準確性略有提升。
LSTM模型在預(yù)測能力上要顯著高于BP網(wǎng)絡(luò)模型。在相同的數(shù)據(jù)集上,BP網(wǎng)絡(luò)模型的最優(yōu)準確率在66.98%左右,而LSTM網(wǎng)絡(luò)模型的最優(yōu)準確率高達87.4%,提升了20%有余。
4.總結(jié)
本文實驗的研究對象是上證綜指。實驗所采用的股票數(shù)據(jù)是日線交易數(shù)據(jù),并對這些數(shù)據(jù)進行特征提取,得到了ROC、RSI、CMO、MACD等17個指標特征。
實驗結(jié)果證明了LSTM模型在對諸如股票這類時序數(shù)據(jù)的預(yù)測中較傳統(tǒng)的BP網(wǎng)絡(luò)有非常明顯的優(yōu)勢,模型最終的準確率達到了87.4%。并且Dropout工具能夠顯著改善模型的適用性和準確性以及模型的泛化能力。
神經(jīng)網(wǎng)絡(luò)模型的好壞也很大程度上依賴于輸入特征的選擇,有關(guān)于分類對象更完善的特征對分類的準確性提高有很大的幫助,以后研究除了從優(yōu)化模型結(jié)構(gòu)、改變優(yōu)化算法亦可以從完善特征工程入手。
參考文獻:
[1]吳凌云.BP神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法的改進及其應(yīng)用[J].信息技術(shù),2003,27(7):42-44.
[2]Luca Di Persio,Ole Ksandr Honchar.Artificial neural networks approach to forecast of stock market price movements[J].International Journal of Economics and Management Systems, Vol.1, 2016: 158-162.
[3]張翔.量化投資與Python語言[M].北京:清華大學(xué)出版社,2018.
作者簡介:謝君杰(1997.2-),男,漢族,浙江紹興人,上海大學(xué)經(jīng)濟學(xué)院,2019級研究生。