李見(jiàn)平
(首都經(jīng)濟(jì)貿(mào)易大學(xué),北京 100070)
隨著中國(guó)經(jīng)濟(jì)的快速發(fā)展,證券市場(chǎng)在中國(guó)經(jīng)濟(jì)領(lǐng)域的作用日益凸顯,股票市場(chǎng)非線性、非平穩(wěn)性和高復(fù)雜性等特點(diǎn),使得對(duì)股票市場(chǎng)的預(yù)測(cè)變得困難[1]。國(guó)內(nèi)對(duì)于股票趨勢(shì)的研究,主要是利用機(jī)器學(xué)習(xí)模型或金融時(shí)間序列模型進(jìn)行分析。戴德寶等[2]將技術(shù)指標(biāo)和股票的文本信息融合,利用支持向量機(jī)(SVM)和人工神經(jīng)網(wǎng)絡(luò)(ANN)對(duì)股票趨勢(shì)進(jìn)行預(yù)測(cè)。徐浩然[1]對(duì)分形特征選擇方法進(jìn)行改進(jìn),并和支持向量機(jī)(SVM)結(jié)合,對(duì)多個(gè)股票的趨勢(shì)進(jìn)行預(yù)測(cè),得到了比其他特征選擇算法更好的結(jié)果。柏萬(wàn)寬[3]利用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)能處理時(shí)序問(wèn)題的特性,將之應(yīng)用于股票預(yù)測(cè)領(lǐng)域。但是RNN 容易發(fā)生梯度消失或者梯度彌散,長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)是對(duì)RNN 的改進(jìn),通過(guò)特殊的門(mén)限結(jié)構(gòu)來(lái)有效緩解RNN 的問(wèn)題。
本文以上證綜指為研究對(duì)象,構(gòu)建了雙層LSTM 深度學(xué)習(xí)模型,對(duì)股票未來(lái)的價(jià)格漲跌進(jìn)行了研究,最后將該模型與常見(jiàn)的機(jī)器學(xué)習(xí)模型(支持向量機(jī)、決策樹(shù)、神經(jīng)網(wǎng)絡(luò))進(jìn)行對(duì)比,利用分類(lèi)評(píng)價(jià)指標(biāo)對(duì)各個(gè)模型的表現(xiàn)進(jìn)行評(píng)價(jià)。
長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)是對(duì)RNN 的改進(jìn),由于其特殊的結(jié)構(gòu),能夠有選擇性地記憶過(guò)去重要的信息,而有效避免RNN 在很長(zhǎng)的時(shí)間步長(zhǎng)時(shí)發(fā)生梯度爆炸。LSTM 有三個(gè)重要的門(mén)限結(jié)構(gòu),其結(jié)構(gòu)分別為:①遺忘門(mén),決定細(xì)胞狀態(tài)丟失何種信息。遺忘門(mén)的更新公式為ft=σ(Wf·[ht-1,xt]+bf),其中,ft為遺忘門(mén)的輸出,σ為sigmoid 激活函數(shù),Wf為遺忘門(mén)的權(quán)重,ht-1為上一刻的隱含層的狀態(tài),xt為當(dāng)前的輸入,bf為遺忘門(mén)的偏置。②狀態(tài)門(mén),確定并更新信息到當(dāng)前時(shí)刻的狀態(tài)中。狀態(tài)門(mén)的更新公式為,其中it=σ(Wi·[ht-1,xt]+bi),。③輸出門(mén),目前的細(xì)胞狀態(tài)決定該時(shí)刻的輸出。輸出門(mén)的計(jì)算公式為ot=σ(Wo·[ht-1,xt]+bo),ht=ot×tanh(Ct)。
經(jīng)過(guò)輸入門(mén)、狀態(tài)門(mén)、遺忘門(mén)的特殊結(jié)構(gòu),LSTM 就可以實(shí)現(xiàn)對(duì)信息的選擇性記憶,輸入在LSTM 模型上正向傳導(dǎo),再利用梯度下降法反向優(yōu)化參數(shù),就可實(shí)現(xiàn)參數(shù)的更新,從而訓(xùn)練出LSTM 模型。
本文實(shí)驗(yàn)以Python3.7 作為編程語(yǔ)言,搭建雙層LSTM模型時(shí),使用Google TensorFlow 框架,該框架是目前十分流行的框架,簡(jiǎn)單、易用,能夠快速幫助研究人員實(shí)現(xiàn)自己的模型。
雙層LSTM 模型結(jié)構(gòu)如下:①輸入層,輸入層的維度為(batchsize, timesteps, nfeatures),batchsize 表示數(shù)據(jù)的批大小,timesteps 表示預(yù)測(cè)的時(shí)間步,nfeatures 表示特征的維度;②LSTM 層,隱狀態(tài)的維度設(shè)置為64,dropout 概率設(shè)置為0.3,讓神經(jīng)元以一定概率休眠,有效防止過(guò)擬合;③LSTM 層,隱狀態(tài)的維度設(shè)置為32,dropout 概率設(shè)置為0.1;④Dense 層,全鏈接層,10 個(gè)神經(jīng)元,激活函數(shù)設(shè)置為sigmoid;⑤Dense 層,輸出層,1 個(gè)神經(jīng)元,激活函數(shù)設(shè)置為sigmoid,將預(yù)測(cè)結(jié)果轉(zhuǎn)化為預(yù)測(cè)為正類(lèi)的概率值。
本文的實(shí)驗(yàn)數(shù)據(jù)來(lái)源于網(wǎng)易財(cái)經(jīng),股票交易的日數(shù)據(jù)包括開(kāi)盤(pán)價(jià)、收盤(pán)價(jià)、最高價(jià)、最低價(jià)、成交量、交易額等,研究對(duì)象為上證綜合指數(shù)(代碼000001),共選擇了3 275條交易數(shù)據(jù),時(shí)間跨度為2007-03-21—2020-08-31。共使用10 個(gè)技術(shù)指標(biāo),包括10 d 移動(dòng)平均(MA10)、10 d 加權(quán)移動(dòng)平均(WMA10)、動(dòng)量指標(biāo)(MTM)、威廉指標(biāo)(WMS)、累計(jì)-派發(fā)指標(biāo)(A/D)、順勢(shì)指標(biāo)(CCI)、隨機(jī) K 指標(biāo)(SK)、隨機(jī)D 指標(biāo)(SD)、相對(duì)強(qiáng)弱指標(biāo)(RSI)、指數(shù)平滑異動(dòng)平均線(MACD)。
預(yù)測(cè)的股票漲跌以yt表示,公式為其中,Ct表示第t日的收盤(pán)價(jià);yt=1 表示預(yù)測(cè)第t+1 天股價(jià)漲;yt=0 表示預(yù)測(cè)第t+1 天股價(jià)跌。
數(shù)據(jù)預(yù)處理是大多數(shù)機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的必要步驟,預(yù)處理方法很多,已有研究表明深度學(xué)習(xí)模型的輸入為正太分布有利于模型訓(xùn)練和收斂,因而本文使用公式將每個(gè)特征轉(zhuǎn)化為標(biāo)準(zhǔn)正太分布,其中:μ(x)表示向量x的均值,σ(x)表示向量x的標(biāo)準(zhǔn)差。
數(shù)據(jù)集的劃分采用隨機(jī)抽樣的方式,訓(xùn)練集、驗(yàn)證集、測(cè)試集的比例分別為0.6、0.2、0.2,其中訓(xùn)練集用于訓(xùn)練模型,驗(yàn)證集用于調(diào)整模型參數(shù),測(cè)試集用于最終的模型評(píng)價(jià)。
模型分類(lèi)效果評(píng)價(jià)的指標(biāo),包括準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)、F1 值。記分類(lèi)器將正例預(yù)測(cè)為正例的數(shù)量為T(mén)P,將正例預(yù)測(cè)為負(fù)例的數(shù)量為FN,將負(fù)例預(yù)測(cè)為正例的數(shù)量為FP,將負(fù)例預(yù)測(cè)為負(fù)例的數(shù)量為T(mén)N,則:

為驗(yàn)證雙層LSTM 模型的預(yù)測(cè)有效性,以單層長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(LSTM)、支持向量機(jī)(SVM)、人工神經(jīng)網(wǎng)絡(luò)(ANN)、決策樹(shù)(DT)的對(duì)比,如表1 所示。
從表1 可以看出,本文所構(gòu)建的雙層LSTM 模型的指標(biāo)均要比傳統(tǒng)機(jī)器學(xué)習(xí)模型更好,如SVM、ANN、DT,而且雙層LSTM 模型也要優(yōu)于單層LSTM 模型,從而證明了本文所提出的雙層LSTM 在股票趨勢(shì)預(yù)測(cè)方面的有效性和可靠性。

表1 模型對(duì)比(單位:%)
本文提出了雙層LSTM 模型,該模型能夠充分挖掘股票的歷史信息,以提高預(yù)測(cè)股票的精度,實(shí)驗(yàn)證明了該模型的有效性和可靠性。但是目前的預(yù)測(cè)精度還不能令人滿意,未來(lái)可以進(jìn)一步深入研究該模型,如增加LSTM 層數(shù),在各層之間加入標(biāo)準(zhǔn)化層,優(yōu)化目標(biāo)函數(shù)等。