李婧琦
(山東工商學院 統(tǒng)計學院, 山東 煙臺 264005)
近年來,機器學習已被應用于金融、交通、醫(yī)藥等各個領域。股票作為金融產(chǎn)品的重要組成部分,不僅僅反映了人們的生活水平,也預示著市場經(jīng)濟,這就是為什么股票走勢的預測在研究人員中越來越受關注的原因[1]。雖然歷史股票信息為許多投資者和分析者提供了充裕的資源,但是對其分析與判斷完全基于分析者的個人經(jīng)驗和直覺,顯然是不可靠且效率低下的。因此,人們需要智能、科學、高效的股票研究方法,這將有助于指導股票交易[2]。早期,研究人員主要將各種傳統(tǒng)的統(tǒng)計方法應用于時間序列模型。如:自回歸條件異方差模型(GARCH)、自回歸移動平均模型(ARMA)、差分整合移動平均自回歸模型(ARIMA)[3]和多元線性回歸模型[4]等等。然而,此類模型通常只能擬合股票價格與影響因素之間的線性關系,而面對復雜度高的股票價格預測,預測的準確性很難令人信服。在過去的幾年里,機器學習算法,包括決策樹、支持向量機、隨機森林、改進的聚類算法和改進的神經(jīng)網(wǎng)絡[5],已被應用于股票預測,并已取得了較好的預測效果。雖然神經(jīng)網(wǎng)絡在股票預測方面取得了較好的效果,但更深層次的神經(jīng)網(wǎng)絡可能更適合這種非線性復雜系統(tǒng)[6]。LSTM神經(jīng)網(wǎng)絡就常用于預測時間序列數(shù)據(jù),其本質(zhì)上是循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體。由于RNN訓練中存在梯度消失和梯度爆炸的問題,即隨著網(wǎng)絡步長的增加,一些權(quán)重的梯度變得過小或過大。梯度爆炸問題可以通過邏輯函數(shù)等方法壓縮梯度來解決,但梯度消失問題則不能用函數(shù)方法解決,導致梯度無法傳播,模型無法訓練,而LSTM 神經(jīng)網(wǎng)絡有效地解決了這個問題。現(xiàn)有研究表明,在股票價格預測中,LSTM神經(jīng)網(wǎng)絡是一個具有良好準確性的預測模型[7],且LSTM 神經(jīng)網(wǎng)絡天生適合于金融市場預測,并以顯著的優(yōu)勢超越了其它預測模型[8]。
盡管在時間序列中LSTM是一個有用的工具,但 LSTM 網(wǎng)絡仍然存在一些限制。 LSTM 網(wǎng)絡屬于高級計算過程,用于完成目標問題的解決方案,但其還沒有準備好對其預測結(jié)果所使用的參數(shù)做出明確的說明,其中包括一些需要人為設置的部分參數(shù)(如:隱藏層神經(jīng)元數(shù)量、迭代次數(shù)、學習率等)。不同參數(shù)訓練的模型差距明顯,因此選擇最優(yōu)的參數(shù)十分重要。目前,對于模型重要參數(shù)的確定往往靠研究者個人經(jīng)驗以及多次實驗決定,浪費人力和時間。為此,提出將鯨魚算法(WOA)優(yōu)化長短期記憶神經(jīng)網(wǎng)絡(LSTM)的模型,來對股票進行預測。利用鯨魚算法尋找LSTM關鍵參數(shù)的最優(yōu)值,使得股票數(shù)據(jù)特征與 LSTM 神經(jīng)網(wǎng)絡拓撲結(jié)構(gòu)之間相互匹配,以提高預測精度。與此同時,為了進一步改善模型性能、降低模型訓練成本以及過擬合風險,使用以隨機森林為分類器的遞歸特征消除算法進行特征選擇,把相關性低及冗余的指標特征篩選掉,得到改進的指標體系進行預測。
遞歸特征消除(Recursive feature elimination)是一種尋找最優(yōu)特征子集的“貪心”算法,其算法的主要思想是經(jīng)過不斷循環(huán)迭代從而實現(xiàn)對特征變量的不斷篩選。2017年吳辰文[9]提出將隨機森林算法(Random forest)作為迭代分類器的遞歸特征消除法,并且驗證了在選擇特征子集方面,有著優(yōu)異的表現(xiàn)。此處利用該方法處理輸入新模型的多維特征,用于建立預測指標體系,從而降低預測誤差。該算法基本實現(xiàn)步驟如下:
(1)建立以隨機森林為基礎的訓練分類器。
(2)計算特征的重要性度量值。
(3)對其特征迭代,剔除重要性測度低的X個(一般為1)特征。
(4)剩余的特征繼續(xù)構(gòu)造子集,重復步驟1~3,直到選擇出最佳特征子集。
LSTM由 Hochreiter等[10]于1997 年提出。其設計之初,旨在使循環(huán)神經(jīng)網(wǎng)絡能夠?qū)W習時間序列數(shù)據(jù)中的長期依賴關系。具體來說,傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡在理論上可以學習長時間間隔的數(shù)據(jù)相關性,但在實際應用中,循環(huán)神經(jīng)網(wǎng)絡只能有效地學習短時間間隔的數(shù)據(jù)相關性,而不能很好地學習長時間間隔的數(shù)據(jù)相關性。基于其隱層節(jié)點精細設計的LSTM神經(jīng)網(wǎng)絡則可以有效解決上述問題。
LSTM神經(jīng)網(wǎng)絡作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的變體,具有RNN可以長時間記憶的特點,創(chuàng)造性地加入了遺忘門,解決了長期依賴長期信息的問題。通過調(diào)整遺忘門中的權(quán)重和偏差,可實現(xiàn)訓練集數(shù)據(jù)的擬合。 LSTM的內(nèi)部結(jié)構(gòu)如圖1所示,其工作原理通常分為以下步驟:
(1)通過觀察ht-1和xt,使用sigmoid函數(shù)以一定的概率丟棄信息或保留信息。sigmoid函數(shù)的輸出范圍為[0,1],“0”表示完全丟棄該信息,“1”表示完全保留該信息。完成該功能的部分稱為遺忘門,可表示為
ft=sigmoid(Wf·[xt,ht-1]+bf)
(1)
其中,ht-1為上個單元的輸出;xt為當前單元的輸入;Wf為遺忘門權(quán)重矩陣;bf為遺忘門偏置項。
(2)處理當前輸入序列的輸入,該功能由輸入門完成。
it=sigmoid(Wi·[xt,ht-1]+bi)
(2)
(3)
其中,Wi、Wc分別為輸入門、神經(jīng)元狀態(tài)的權(quán)重矩陣,bi、bc分別為對應的偏置項。
(3)根據(jù)輸入門、遺忘門和之前的細胞狀態(tài),更新當前細胞狀態(tài)。
(4)
其中,Ct-1為上個單元細胞狀態(tài)。
(4)根據(jù)輸出門公式得到輸出值。
ot=sigmoid(Wo·[xt,ht-1]+bo
(5)
ht=ot·tanh(Ct)
(6)
其中,Wo為輸出門權(quán)重矩陣;bo為輸出門偏置項;ht為當前單元輸出。
(5)根據(jù)反向傳播算法計算梯度變化,然后根據(jù)梯度下降法調(diào)整權(quán)重和偏差。
LSTM神經(jīng)網(wǎng)絡通過上述精心設計,使其能夠有效挖掘時間序列數(shù)據(jù)中間隔較長數(shù)據(jù)之間的相關性,從而更有效地預測未來的股票價格和波動。

圖1 LSTM網(wǎng)絡單元結(jié)構(gòu)
鯨魚優(yōu)化算法(WOA)是由 Mirjalili等人提出的一種模擬座頭鯨泡泡網(wǎng)喂食的算法[11]。該算法本質(zhì)上是一種基于群體智能模擬的元啟發(fā)式算法。
1.3.1 包圍獵物
WOA將獵物位置視為最優(yōu)目標或近似最優(yōu)解,其它種群中的個體以此為基礎更新自己的位置。此過程的數(shù)學模型可用以下公式表示:
(7)
其中:t表示迭代次數(shù);A、C表示系數(shù)向量;X*是當前的最佳鯨魚位置;X是當前鯨魚位置;a在迭代過程中從2線性減小到0;r表示區(qū)間[0.1]內(nèi)的隨機數(shù)。
1.3.2 泡泡網(wǎng)攻擊方式
泡泡網(wǎng)攻擊可以分為兩種策略:收縮包圍和螺旋更新位置。
(1)收縮包圍:該方式是通過公式中的a值來實現(xiàn)的。a在迭代過程中從2減少到0,而A是區(qū)間(-a,a)內(nèi)的隨機數(shù),即A為(-2,2)中的一個隨機值。當A設置為從-1~1 時,鯨魚的新位置可以定義為原始位置和獵物位置之間的任何位置。
(2)螺旋更新位置:首先計算鯨魚與獵物位置之間的距離,然后在兩個位置之間建立螺旋方程,來模擬鯨魚的螺旋運動:
(8)
其中:D表示鯨魚與獵物的距離;b表示螺旋形狀常數(shù);l為區(qū)間[-1,1]上的隨機數(shù)。
在收縮包圍獵物的同時,鯨魚在螺旋軌道上捕獵獵物。為了模擬這種同時發(fā)生的行為,假設有0.5的概率可以在收縮包圍獵物和螺旋模型之間做出選擇,以更新鯨魚位置,則數(shù)學模型如下:
2015年,宿州農(nóng)資市場出現(xiàn)劇烈震動,依靠價格優(yōu)勢起家的譚鳳明依然停留在抓行情、拼價格的經(jīng)營模式上,結(jié)果導致公司的銷量出現(xiàn)明顯下滑。對此,譚鳳明坦言:“由于從業(yè)時間久,形成了思維定勢,最初在應對競爭壓力時的主要手段還是價格戰(zhàn),但拼價格對于正規(guī)經(jīng)營的企業(yè)來說是個兩敗俱傷的選擇,時間一久就難以承受。”越發(fā)激烈的價格戰(zhàn)和假冒偽劣產(chǎn)品的沖擊,迫使譚鳳明不得不認真思考企業(yè)的出路。通過對廠家、零售商、農(nóng)戶的大量走訪調(diào)研,他逐漸認識到,肥料市場風起云涌的背后是中國農(nóng)業(yè)轉(zhuǎn)型升級這一不可逆轉(zhuǎn)的趨勢在推動,市場需求和行業(yè)發(fā)展邏輯發(fā)生了根本的改變。
(9)
(3)尋找獵物:鯨魚根據(jù)彼此的位置尋找獵物。當|A|>1 時,鯨魚位置是通過隨機選擇來更新的。數(shù)學模型如下:

(10)
其中,Xrand(t)表示隨機鯨魚的位置。
LSTM模型的關鍵參數(shù)通常依賴于研究人員的經(jīng)驗設置,隨機性大、預測精度不理想,甚至可能陷入局部最佳解決方案。為解決上述問題,使用鯨魚算法優(yōu)化長短期記憶神經(jīng)網(wǎng)絡。將長短期記憶神經(jīng)網(wǎng)絡的隱藏層神經(jīng)元個數(shù)、學習率、訓練迭代次數(shù)作為鯨魚算法的尋優(yōu)目標。優(yōu)化模型的工作主要分為4部分:
(1)確定LSTM網(wǎng)絡拓撲結(jié)構(gòu)并初始化網(wǎng)絡里所有參數(shù)。
(2)根據(jù)待優(yōu)化參數(shù)所確定的隨機值,選擇參數(shù)搜索范圍。
(3)計算個體鯨魚對應的適應度值。適應度值設置為模型驗證數(shù)據(jù)集的均方根誤差(RMSE)。若計算的適應度是最小值,則將其設為本次的最優(yōu)結(jié)果,并且與全局最優(yōu)適應度值對比大小。若該值小于全局最優(yōu)適應度值,則進行替換。
(4)開始迭代。用鯨魚算法不斷更新需要優(yōu)化的3個超參數(shù),重復步驟3~4,直到達到最大迭代次數(shù)。
構(gòu)建鯨魚算法優(yōu)化LSTM預測模型的核心是優(yōu)化工作,圖2展示了預測模型的具體算法流程。通過對樣本數(shù)據(jù)的訓練過程,尋找關鍵參數(shù)最優(yōu)值。具體步驟如下:
(1)數(shù)據(jù)集預處理。首先丟棄異常值、補全缺失值,并把數(shù)據(jù)按時間排序;其次,將數(shù)據(jù)集進行歸一化處理;最后,用遞歸特征消除法進行特征選擇。
(2)鯨魚算法參數(shù)初始化。確定鯨魚算法中的最大迭代次數(shù)(t_max)、鯨魚數(shù)量n、搜索范圍的最大值(ub)和最小值(lb)。
(3)鯨魚位置初始化。隨機生成種群鯨魚Xi,0(l,e,a),其中l(wèi)為訓練迭代次數(shù),e為學習率,a為隱藏層神經(jīng)元個數(shù)。
(4)鯨魚算法通過包圍獵物、泡泡網(wǎng)攻擊和搜索獵物,不斷優(yōu)化網(wǎng)絡參數(shù),直到迭代結(jié)束,得到最優(yōu)的訓練迭代次數(shù)、學習率和隱藏層神經(jīng)元個數(shù)。
(5)將測試數(shù)據(jù)集輸入到利用最優(yōu)參數(shù)構(gòu)建好的LSTM模型中,輸出預測值。

圖2 WOA-LSTM預測模型
實驗選取上證指數(shù)(SH000001)為例,采用上證指數(shù)的交易指標和技術指標作為數(shù)據(jù)集,各指標見表1。數(shù)據(jù)通過python的Tushare財務接口包獲得,時間段為 2012年 6月 7日至2022年 3月 17日,其中包括上證指2 378條數(shù)據(jù)。實驗前刪除掉因停盤等操作造成的缺失數(shù)據(jù),并將數(shù)據(jù)進行時間排序。為了更好地評估模型性能,選用LSTM模型、PSO-LSTM模型和 SSA-BP模型與WOA-LSTM模型進行對比實驗。

表1 股票價格預測指標
為了顯示各模型預測效果,采取均方根誤差(RMSE) 、平均絕對百分比誤差(MAPE) 、平均絕對誤差(MAE) 和決定系數(shù)R2等4個評價指標,來評估每個模型的預測效果。其中,RMSE、MAPE、MAE數(shù)值越小,說明模型預測結(jié)果越準確,與實際值偏差越小; 決定系數(shù)R2越接近 1,說明模型的擬合優(yōu)度越高,預測效果越好。具體公式定義為:
(11)
(12)
(13)
(14)

2.2.1 構(gòu)建預測指標體系
利用基于隨機森林為分類器的遞歸特征消除法,將不重要的特征從數(shù)據(jù)子集中剔除。
對初始32個特征進行算法迭代,直至達到所需要的特征數(shù)量。在重復交叉驗證的實驗中,最終得到最佳特征數(shù)量為13個。交叉驗證所選的特征數(shù)量如圖3所示,選取的最終最佳預測指標,見表2。

圖3 RFE最佳特征數(shù)量

表2 特征子集
2.2.2 模型參數(shù)選擇及優(yōu)化結(jié)果
構(gòu)建的鯨魚算法優(yōu)化LSTM 模型是由輸入層、隱藏層和輸出層組成的循環(huán)神經(jīng)網(wǎng)絡,且使用 Adam 優(yōu)化器進行梯度下降優(yōu)化權(quán)值,初始鯨魚數(shù)量為30,最大迭代次數(shù)為100。利用鯨魚算法對股票預測模型的參數(shù)尋優(yōu),上證指數(shù)數(shù)據(jù)訓練所得最優(yōu)參數(shù),分別為迭代次數(shù)167、學習率為0.02、隱藏層神經(jīng)元個數(shù)為128。
各模型在尋優(yōu)過程中不斷收斂的適應度曲線如圖4所示。從圖中對應的曲線可見, WOA-LSTM 的收斂速度和準確性均優(yōu)于 PSO-LSTM、SSA-BP。

圖4 適應度值收斂曲線圖
2.2.3 股票價格預測
將經(jīng)過特征選擇的股票數(shù)據(jù)代入預測模型,驗證模型的有效性,并與LSTM模型、PSO-LSTM模型、SSA-BP模型進行對比分析。各個模型的預測結(jié)果如圖5~圖8所示。在對應圖中可以明顯看出,經(jīng)過鯨魚算法優(yōu)化LSTM的預測曲線更加接近真實曲線,即預測值與真實值最為接近,擬合優(yōu)度最高。說明該模型預測性能以及弱化滯后能力都表現(xiàn)最佳。

圖5 LSTM模型真實值與預測值對比

圖6 PSO-LSTM模型真實值與預測值對比

圖7 SSA-BP模型真實值與預測值對比

圖8 WOA-LSTM模型真實值與預測值對比
為了進一步準確地驗證模型的預測性能,表3給出了各個模型的4種評價指標計算結(jié)果。從表3可知,通過鯨魚算法優(yōu)化的LSTM模型對應RMSE、MAPE、MAE值分別為21.763 1、0.007 2、26.290 7,均低于其它3種預測模型,并且該模型的決定系數(shù)為0.931 6,結(jié)果比其它預測模型更接近1,說明模型的擬合效果更佳。

表3 各模型評價指標比較
其中,WOA-LSTM的RMSE指標比LSTM低47.87%,比PSO-LSTM低45.42%,比SSA-BP低14.71%;MAPE指標比其它3種模型分別低25.00%、20.00%、19.10%;MAE指標則分別減少了11.53%、8.31%、7.19%。綜上所述,通過鯨魚算法優(yōu)化的LSTM模型預測性能有著顯著提高。
為了提高股票價格預測模型的預測性能,本文提出了使用鯨魚算法(WOA)優(yōu)化LSTM的股票價格預測模型。利用鯨魚算法對LSTM網(wǎng)絡的重要參數(shù)尋優(yōu),使得人為因素的影響降低,模型預測的準確性提高。本文選取了上證指數(shù)股票數(shù)據(jù)進行實驗。驗證了鯨魚算法在尋優(yōu)過程時的收斂速度以及準確性方面都有著顯著的優(yōu)勢。并且在預測性能方面,相較于單一神經(jīng)網(wǎng)絡模型與其它被優(yōu)化的神經(jīng)網(wǎng)絡模型,經(jīng)鯨魚算法優(yōu)化的LSTM模型具有更好的預測精度。同時,考慮到股票時間序列數(shù)據(jù)具有冗余性,篩除與預測值負相關以及相關性低的特征,用最佳特征子集訓練新的模型,使得模型的預測精度得到了進一步的提高。面對龐大而復雜的股票市場,通過鯨魚算法優(yōu)化的LSTM模型能夠?qū)崿F(xiàn)更快、更準確地進行預測,可以在一定程度上降低投資者的風險。該模型可以有效地處理時間序列,在時間序列問題上具有一定應用前景。