劉茜陽,宋 燕,張亞萌
(1上海理工大學(xué) 理學(xué)院,上海 200093;2上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
金融數(shù)據(jù)是現(xiàn)代經(jīng)濟(jì)學(xué)不可分割的一部分。在金融市場中,由于具有較高的回報(bào)率,股票市場成為最熱門的投資領(lǐng)域。股票價(jià)格反映了公司的經(jīng)營狀況,為投資者提供了重要的投資參考。為了使利益最大化,降低投資風(fēng)險(xiǎn),投資者有必要對股票價(jià)格進(jìn)行預(yù)測。然而,由于股票市場受到國外市場行情、時(shí)事生態(tài)和投資者行為及心理等多方面因素的影響,其數(shù)據(jù)呈現(xiàn)非線性和非平穩(wěn)特征,這使得預(yù)測更具挑戰(zhàn)性。因此,長期以來,股票價(jià)格預(yù)測一直是金融學(xué)者研究的重點(diǎn)。
目前,股票預(yù)測方法主要包括基本分析法、技術(shù)分析法、組合分析法、時(shí)間序列分析法、機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)等幾大類。傳統(tǒng)的股票市場預(yù)測技術(shù)主要是基于歷史股票數(shù)據(jù)的統(tǒng)計(jì)分析,如自回歸綜合移動平均模型(ARIMA)、自回歸條件異方差模型(ARCH)和廣義自回歸條件異方差模型(GARCH)模型,已被廣泛用于金融市場的預(yù)測中。但由于股票自身的非平穩(wěn)與非線性特征,這些統(tǒng)計(jì)方法并不能在預(yù)測時(shí)達(dá)到較好的效果。
近幾年,隨著人工智能領(lǐng)域的發(fā)展,機(jī)器學(xué)習(xí)方法在股票市場預(yù)測中被廣泛應(yīng)用,并取得了一定的研究成果。其中,人工神經(jīng)網(wǎng)絡(luò)(ANN)和支持向量回歸(SVR)是預(yù)測金融時(shí)間序列流行的技術(shù),因?yàn)椴恍枰鋈魏蔚慕y(tǒng)計(jì)假設(shè)條件,可以直接提取數(shù)據(jù)間的非線性關(guān)系。同時(shí),在小樣本預(yù)測方面,與ANN方法相比,SVR不容易陷入局部最優(yōu),因此有較大的優(yōu)越性。但這些方法在處理輸入數(shù)據(jù)時(shí)并不能捕獲序列數(shù)據(jù)的順序信息,對時(shí)間序列問題沒有優(yōu)秀的泛化能力,所以預(yù)測效果仍然受到了一些限制。
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)解決了這一問題,因其具備了時(shí)序概念,對股票的預(yù)測性能更好,但RNN在訓(xùn)練時(shí)往往會出現(xiàn)梯度消失或梯度爆炸的問題,這導(dǎo)致時(shí)間序列的長期依賴關(guān)系很難學(xué)習(xí)。1997年,Hochreiter等人在論文《Long Short-Term Memory》中,針對RNN不能解決數(shù)據(jù)的長序依賴的問題進(jìn)行研究并提出了LSTM模型。但是此LSTM的記憶存儲會隨序列長度的延伸而增長,最終可能會導(dǎo)致網(wǎng)絡(luò)崩潰,因此,在2000年針對該問題,F(xiàn)elix等人在LSTM神經(jīng)元內(nèi)部增加了遺忘門,使數(shù)據(jù)在傳輸時(shí)可以保持長時(shí)記憶。因此LSTM神經(jīng)網(wǎng)絡(luò)被越來越多地應(yīng)用到金融時(shí)間序列的預(yù)測中。
此外,基于LSTM神經(jīng)網(wǎng)絡(luò)的混合方法也被廣泛應(yīng)用于金融時(shí)間序列分析中,并通過與單一模型方法相比獲得更高精度的預(yù)測結(jié)果。然而,大多數(shù)混合方法雖然在一定程度上提高了預(yù)測精度,但這些方法都是通過對LSTM預(yù)測模型的輸入進(jìn)行分析,而沒有對于LSTM模型產(chǎn)生的殘差進(jìn)行分析預(yù)測。
基于上述問題,本文提出了一種將遺傳算法、LSTM網(wǎng)絡(luò)、模糊K線和改進(jìn)的支持向量回歸算法(vSVR)相結(jié)合的混合股價(jià)預(yù)測模型。第一階段,該模型首先利用遺傳算法對LSTM神經(jīng)網(wǎng)絡(luò)的參數(shù)進(jìn)行優(yōu)化,然后用訓(xùn)練好的LSTM網(wǎng)絡(luò)產(chǎn)生預(yù)測輸出。第二階段,基于模糊K線模型提取到的模糊信息,采用vSVR模型預(yù)測誤差。最后,將兩階段的預(yù)測值之和作為最終的股票價(jià)格預(yù)測值。本文的貢獻(xiàn)主要如下:
(1)對于LSTM網(wǎng)絡(luò)的部分參數(shù)、如時(shí)間窗口大小和結(jié)構(gòu)參數(shù)的估計(jì),以往通常采用試錯(cuò)法,但效率較低,本文利用遺傳算法優(yōu)化LSTM網(wǎng)絡(luò),以選擇最佳的窗口大小、神經(jīng)元數(shù)目。
(2)由于股票價(jià)格序列可以由K線表示,而且會受到多方面因素的影響,本文利用模糊理論將股票價(jià)格數(shù)據(jù)轉(zhuǎn)換為模糊數(shù)據(jù),采用vSVR模型建立預(yù)測誤差與股票模糊信息之間的映射關(guān)系,減小了模型的固有誤差。
(3)實(shí)驗(yàn)結(jié)果顯示本文提出模型的預(yù)測效果更好,擬合程度更優(yōu)。
近年來,LSTM神經(jīng)網(wǎng)絡(luò)已陸續(xù)應(yīng)用于時(shí)間序列預(yù)測、文本分類等領(lǐng)域中,具有較高的精度。LSTM單元結(jié)構(gòu)如圖1所示。由圖1可知,LSTM單元控制門結(jié)構(gòu)主要包含遺忘門、輸入門與輸出門。遺忘門f控制細(xì)胞在1時(shí)刻的狀態(tài)有多少信息會被遺忘,輸入門i決定有多少新信息將被保存到時(shí)刻的細(xì)胞狀態(tài),輸出門o決定輸出新細(xì)胞狀態(tài)的信息。其計(jì)算過程如下:
圖1 LSTM單元結(jié)構(gòu)Fig.1 The LSTM cell structure
當(dāng)使用LSTM網(wǎng)絡(luò)進(jìn)行股票價(jià)格預(yù)測時(shí),前期多個(gè)時(shí)刻的收盤價(jià)將作為輸入,當(dāng)前時(shí)刻的收盤價(jià)作為輸出。對于LSTM模型預(yù)測而言,時(shí)間窗口起著較為重要的作用,每層神經(jīng)元數(shù)也是LSTM模型優(yōu)化的重要參數(shù)。本文利用遺傳算法對LSTM模型進(jìn)行優(yōu)化,得到時(shí)間窗口和隱藏層神經(jīng)元數(shù)的最佳值或接近最佳值。
SVR是支持向量機(jī)(SVM)在回歸問題領(lǐng)域的推廣,其中vSVR模型是一種改進(jìn)的SVR,新參數(shù)控制誤差分?jǐn)?shù)的上界和支持向量分?jǐn)?shù)的下界,并自動最小化誤差參數(shù),這使得更容易通過手動校準(zhǔn)來調(diào)整參數(shù)。對于給定的一組數(shù)據(jù)點(diǎn){(,),(,),…,(x,y)},其中x∈R是輸入,y∈是目標(biāo)輸出,vSVR模型使用核函數(shù)將不可分割的輸入數(shù)據(jù)x映射到高維空間,從而使得目標(biāo)值與訓(xùn)練數(shù)據(jù)得到的回歸函數(shù)()(,())的距離最小,即極小化目標(biāo)函數(shù):
其中,常數(shù)表示錯(cuò)誤樣本個(gè)數(shù)占總樣本個(gè)數(shù)份額的上界或支持向量與總樣本數(shù)比值的下界;()為核函數(shù);和分別表示權(quán)重和偏置;表示誤差;ξ和為松弛變量;為懲罰參數(shù)。
其對偶問題為:
其中,和為拉格朗日乘子,且其值都不為0,(x,x)為核函數(shù)。決策函數(shù)變?yōu)椋?/p>
相對于傳統(tǒng)的經(jīng)濟(jì)學(xué)模型和基本的機(jī)器學(xué)習(xí)方法,單一的LSTM神經(jīng)網(wǎng)絡(luò)的預(yù)測精度雖然有所提高,但這并不能滿足人們的需求。針對這個(gè)問題,本文利用vSVR模型進(jìn)行殘差分析來提高LSTM神經(jīng)網(wǎng)絡(luò)的預(yù)測精度。
研究可知,經(jīng)過不斷演變,K線圖現(xiàn)已形成了擁有完整形式和分析理論的技術(shù)分析方法。在K線圖中,影線長度和實(shí)體長度在識別K線模式上發(fā)揮了重要作用。但是,在日常生活中,人們對于K線的描述往往難以做到精確,甚至是模糊的,例如長的、中等的或者是短的。因此,本文將引入Naranjo等人在股票預(yù)測中所提到的模糊變量法,即運(yùn)用模糊集合理論將本文的股票時(shí)間序列數(shù)據(jù)轉(zhuǎn)化為模糊化的數(shù)據(jù),并作為vSVR模型的輸入,LSTM神經(jīng)網(wǎng)絡(luò)的殘差作為輸出構(gòu)建vSVR模型。
首先,將K線的3個(gè)變量包括上影線、下影線和實(shí)體的長度(L、L和L)作為輸入數(shù)據(jù),R和R作為模糊輸出數(shù)據(jù),分別表示實(shí)體與燭臺整體之間的相對大小和相對位置。交易時(shí)間中的3個(gè)模糊輸入可以定義如下:
其中,(),(),(),()分別表示時(shí)刻的開盤價(jià)、收盤價(jià)、最高價(jià)和最低價(jià)。然后利用式(15)將這3個(gè)變量縮放到[0,100]之間,數(shù)學(xué)公式具體如下:
其次,用定義的4個(gè)模糊語言變量來描述3個(gè)輸入變量:NULL、SHORT、MIDDLE、LONG,如圖2所示。用5個(gè)模糊子集來描述R:DOWN、CENTER_DOWN、CENTER、CENTER_UP、UP,如圖3所示。用5個(gè)模糊子集來描述輸出變量R:LOW、MEDIUM_LOW、MEDIUM、MEDIUM_EQUAL、EQUAL,如圖4所示。
圖2 Lu、Ll和Lb的隸屬度函數(shù)Fig.2 Membership function for Lu、Ll and Lb
圖3 Rp的隸屬度函數(shù)Fig.3 Membership function for Rp
圖4 Rs的隸屬度函數(shù)Fig.4 Membership function for Rs
最后,基于128條IF-THEN模糊規(guī)則,詳見表1中的部分模糊規(guī)則,并用質(zhì)心法去模糊化得到輸出數(shù)據(jù)。
表1 模糊規(guī)則Tab.1 Fuzzy rules
由于LSTM網(wǎng)絡(luò)在學(xué)習(xí)過程中使用過去的信息,不同的時(shí)間窗口會對模型學(xué)習(xí)性能的提高起不同的作用。窗口過小,模型會忽略重要信息;窗口過大,模型會對訓(xùn)練數(shù)據(jù)過度擬合。所以將遺傳算法用于優(yōu)化LSTM模型,以選擇最佳的窗口大小、神經(jīng)元數(shù)目,即GLSTM模型。圖5給出了GLSTM模型的流程圖。
圖5 GLSTM模型流程圖Fig.5 The flowchart of the GLSTM model
圖6 LSTM模型結(jié)構(gòu)Fig.6 The structure of the LSTM model
由于GLSTM網(wǎng)絡(luò)模型較為單一,本文提出了一種基于模糊K線的FCLSTM-vSVR模型的股票價(jià)格預(yù)測方法。其中,主模型是基于遺傳算法的LSTM網(wǎng)絡(luò)模型,次模型是vSVR模型。
對于主模型,基于不同的參數(shù)設(shè)置,LSTM網(wǎng)絡(luò)模型的預(yù)測結(jié)果和性能會有所不同。所以本文首先通過遺傳算法進(jìn)行參數(shù)尋優(yōu),找到模型的最佳時(shí)間窗口大小和隱藏層單元數(shù),如2.2節(jié)所示。
對于次模型,vSVR模型是一種不依賴于任何先驗(yàn)知識的機(jī)器學(xué)習(xí)非線性回歸方法,該模型參數(shù)具有明確意義,更利于得到精確的回歸解,因此在小樣本預(yù)測方面具有顯著優(yōu)勢。圖7描述了FCLSTMvSVR模型的流程圖。
圖7中,F(xiàn)CLSTM-vSVR殘差修正模型的處理流程如下:
圖7 FCLSTM-vSVR模型流程圖Fig.7 The flowchart of the FCLSTM-vSVR model
(1)利用數(shù)據(jù)集原始價(jià)格數(shù)據(jù)建立模糊燭臺模型,得到2個(gè)模糊輸出數(shù)據(jù)R和R。然后將數(shù)據(jù)集拆分為訓(xùn)練集和測試集,并利用最大-最小標(biāo)準(zhǔn)化公式進(jìn)行歸一化處理。
(2)將訓(xùn)練集部分劃分為驗(yàn)證集,利用訓(xùn)練集建立GLSTM預(yù)測模型:
①使用二進(jìn)制位編碼表示時(shí)間窗的大小和LSTM神經(jīng)單元數(shù)。
②隨機(jī)生成初始種群,根據(jù)適應(yīng)度函數(shù)和選擇進(jìn)行評估,然后進(jìn)行交叉和變異,使用賭輪盤選擇。在本文中使用均方誤差()來計(jì)算每個(gè)染色體的適應(yīng)度,輸入LSTM模型,在驗(yàn)證集上計(jì)算,并返回該值將其作為當(dāng)前遺傳算法解決方案的適應(yīng)度值,得出最優(yōu)時(shí)間窗口大小及最優(yōu)神經(jīng)網(wǎng)絡(luò)隱藏層單元數(shù)。
③重復(fù)該過程直至滿足終止條件。
(3)將經(jīng)過良好訓(xùn)練的GLSTM預(yù)測模型應(yīng)用于整個(gè)訓(xùn)練集的股票價(jià)格預(yù)測中,得到不同時(shí)刻的預(yù)測殘差值e,形成歷史殘差,稱為殘差集。
為了驗(yàn)證實(shí)驗(yàn)結(jié)果,本文將設(shè)置GLSTM模型、vSVR模型、BPNN模型、ARIMA模型、GLSTM-BPNN模型作為對照,其中GLSTM模型的輸入為收盤價(jià)歷史數(shù)據(jù),并對ARIMA模型使用網(wǎng)格搜索法確定最優(yōu)參數(shù)。本節(jié)通過股票歷史數(shù)據(jù)驗(yàn)證了FCLSTM-vSVR模型的優(yōu)越性和穩(wěn)健性,也對FCLSTM-vSVR模型和其他模型進(jìn)行了性能比較。所有模型都由Python3.6和TensorFlow實(shí)現(xiàn),電腦的操作系統(tǒng)Windows 10,處理器是英特爾i7-7820HQ(2.90千兆赫)。模型的主要最佳參數(shù)是通過在驗(yàn)證集上不斷試驗(yàn)和參考相關(guān)文獻(xiàn)確定的,見表2。
表2 模型的部分參數(shù)設(shè)置Tab.2 Parameters setting of the model
本文使用從雅虎財(cái)經(jīng)網(wǎng)站獲得的5只股票數(shù)據(jù)集:AAPL、ADI、WTI、GSPC、IXIC。每只股票數(shù)據(jù)集的時(shí)間跨度為2015年1月4日至2020年10月22日。數(shù)據(jù)集劃分為訓(xùn)練集和測試集,其中訓(xùn)練集為80%,測試集為20%。這里,訓(xùn)練集中選擇20%數(shù)據(jù)作為驗(yàn)證集來確定超參數(shù)。
為了量化模型的性能,引入了5個(gè)指標(biāo):平均絕對誤差()、平均絕對百分比誤差()、均方誤差()、均方根誤差()、決定系數(shù)(),這些指標(biāo)可以定義如下:
首先通過遺傳算法,本文得到LSTM網(wǎng)絡(luò)的最優(yōu)結(jié)構(gòu)因素,包括LSTM網(wǎng)絡(luò)的時(shí)間窗口大小和隱藏層的單元數(shù)。其中,時(shí)間窗口大小取值范圍為[5,30],隱藏層單元數(shù)取值范圍為[10,100]。表3顯示了GLSTM模型在各個(gè)數(shù)據(jù)集上的訓(xùn)練得到的參數(shù)結(jié)果。例如股票AAPL預(yù)測的最佳時(shí)間窗口大小為6,最佳LSTM隱藏層單元數(shù)為80。也就是說,對于股票AAPL,利用過去6個(gè)交易日的信息來分析預(yù)測是最有效的。
表3 GLSTM模型的時(shí)間窗口大小和隱藏層單元數(shù)Tab.3 Time window size and hidden layer units of GLSTM model
在得到模型最佳參數(shù)基礎(chǔ)上,利用提出FCLSTMvSVR預(yù)測模型對各個(gè)股票數(shù)據(jù)集進(jìn)行股價(jià)預(yù)測,并與其他模型進(jìn)行對比。表4~表8給出了不同模型在各個(gè)數(shù)據(jù)集上的平均預(yù)測誤差。對于單一模型,傳統(tǒng)的時(shí)間序列模型ARIMA的預(yù)測效果最差。機(jī)器學(xué)習(xí)vSVR模型的預(yù)測效果與BPNN模型的效果相近,而GLSTM模型的預(yù)測效果最好。這表明GLSTM模型在具有相同的輸入變量下可以獲得相比于普通機(jī)器學(xué)習(xí)的模型vSVR和BPNN更好的性能。所以在股票預(yù)測中,GLSTM網(wǎng)絡(luò)模型是一種較好的預(yù)測方法。
表4 AAPL上各模型比較結(jié)果Tab.4 The evaluation results of different models on AAPL
表5 ADI上各模型比較結(jié)果Tab.5 The evaluation results of different models on ADI
表6 WTI上各模型比較結(jié)果Tab.6 The evaluation results of different models on WTI
表7 GSPC上各模型比較結(jié)果Tab.7 The evaluation results of different models on GSPC
表8 IXIC上各模型比較結(jié)果Tab.8 The evaluation results of different models on IXIC
對于混合模型GLSTM-BPNN,在股票GSPC上的結(jié)果比其他單一模型的預(yù)測效果好,、、、分別為0.923 23、81.552 46、1.924 91、56.304 93,與GLSTM模型相比,精度分別提高了0.86%、4.32%、11.39%、13.21%。但在其他數(shù)據(jù)集上,模型GLSTM-BPNN結(jié)果并不理想,這可能與神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置不合理有關(guān)。
所有數(shù)據(jù)集中,與GLSTM模型相比,F(xiàn)CLSTMvSVR的誤差指標(biāo)均保持較低值,也更接近于1,擬合效果更好。這一結(jié)果的主要原因是增加了殘差分析。結(jié)果表明,殘差分析是一種能顯著提高股價(jià)預(yù)測精度的方法,殘差中具有重要的信息價(jià)值,值得進(jìn)行深入研究?;谀:隣T臺建模,2個(gè)模糊輸出變量(R和R)在殘差模型中成功應(yīng)用,這一結(jié)果表明,在數(shù)據(jù)中的模糊信息對于殘差序列也具有影響。與GLSTM-BPNN模型相比,F(xiàn)CLSTM-vSVR的所有指標(biāo)結(jié)果都較好,這表明vSVR模型與BPNN相比,對于小樣本具有更精確的回歸解。所以,對于股票價(jià)格預(yù)測,F(xiàn)CLSTM-vSVR模型與其他模型相比具有更好的預(yù)測效果。
為了更好地觀察模型GLATM-vSVR的性能,在測試集上實(shí)際值對于模型預(yù)測值的擬合效果如圖8所示。
圖8 收盤價(jià)真實(shí)值與FCLSTM-vSVR模型的預(yù)測值對比Fig.8 The comparison of the actual closing price values with the predicted value of FCLSTM-vSVR model
由圖8可知,提出FCLSTM-vSVR模型得到的預(yù)測值與真實(shí)值較為接近。但由于市場環(huán)境和投資人行為等因素的存在,所以零誤差的預(yù)測無法實(shí)現(xiàn)。但本文提出模型與其他對照模型相比,取得了較為理想的預(yù)測效果。
對股票市場的預(yù)測可以產(chǎn)生實(shí)際的盈利或虧損,因此提高模型的可預(yù)測性對投資者來說是非常重要的。在本文中,提出了一種新的基于模糊K線的混合股票價(jià)格預(yù)測模型,即FCLSTM-vSVR模型。具體來說,首先本文將遺傳算法和LSTM網(wǎng)絡(luò)結(jié)合起來考慮股票市場的時(shí)間特性和模型的自定義結(jié)構(gòu)因素。利用遺傳算法搜索時(shí)間窗口大小和神經(jīng)網(wǎng)絡(luò)隱藏層單元數(shù)的最優(yōu)或接近最優(yōu)值。然后,提出了一種降低預(yù)測誤差的方法來提高GLSTM模型的預(yù)測精度。該方法采用模糊K線模型來表示原始價(jià)格序列中的模糊信息,vSVR模型建立預(yù)測誤差與模糊輸出因素之間的映射關(guān)系。本文選取5個(gè)股票數(shù)據(jù)集,通過對比試驗(yàn),驗(yàn)證了該模型的可行性。實(shí)驗(yàn)結(jié)果表明,與基線模型相比,所提出的模型具有更高的預(yù)測精度。但使用遺傳算法尋找LSTM神經(jīng)網(wǎng)絡(luò)模型參數(shù)所需時(shí)間與計(jì)算資源較大。因此,尋找一種更簡單的方法來優(yōu)化LSTM網(wǎng)絡(luò)參數(shù)將是下一步研究的方向。