黃建華, 鐘 敏, 胡慶春
(華東理工大學(xué)信息科學(xué)與工程學(xué)院, 上海 200237)
自從股票市場(chǎng)誕生以來,股票價(jià)格的預(yù)測(cè)一直備受關(guān)注,同時(shí)也是一項(xiàng)巨大的挑戰(zhàn)[1],人們嘗試通過各種算法來預(yù)測(cè)股票價(jià)格的未來走勢(shì)以獲取收益。最早是以隨機(jī)波動(dòng)的方式來描述股票價(jià)格的變動(dòng)[2],此后國(guó)內(nèi)外學(xué)者提出了更多的算法來描述股票行為,如傳統(tǒng)的時(shí)間系列預(yù)測(cè)方法有指數(shù)平滑法( Exponential Smoothing) 、 多 元 線 性 回 歸 模 型(Multivariable Linear Regression)、自回歸滑動(dòng)平均模型(ARMA)、差分整合移動(dòng)平均自回歸模型(ARIMA)等[3-4]。由于影響股價(jià)的因素眾多,影響機(jī)理也非常復(fù)雜,使用這些簡(jiǎn)單的數(shù)學(xué)模型難以獲得較好的預(yù)測(cè)精度。隨著人工智能的發(fā)展,許多機(jī)器學(xué)習(xí)模型由于能夠更好地處理非線性問題,有著更好的擬合能力,因而被廣泛應(yīng)用到股票價(jià)格預(yù)測(cè)中,如支持向量機(jī)(SVM)、決策樹(Decision Tree)、隨機(jī)森林(Random Forest)和深度神經(jīng)網(wǎng)絡(luò)(RNN,LSTM)等[5]。
研究表明針對(duì)復(fù)雜的金融時(shí)間序列,深度學(xué)習(xí)算法是目前最適合進(jìn)行股票市場(chǎng)預(yù)測(cè)的算法。在眾多深度神經(jīng)網(wǎng)絡(luò)模型中,LSTM 網(wǎng)絡(luò)被廣泛應(yīng)用于各種時(shí)間序列分析任務(wù)中[6]。LSTM 網(wǎng)絡(luò)克服了梯度消失(或爆炸)的問題,能夠通過記憶單元有效地學(xué)習(xí)長(zhǎng)期依賴關(guān)系,優(yōu)于傳統(tǒng)的RNN[7],所以,在處理股票價(jià)格這樣的時(shí)間序列數(shù)據(jù)時(shí),LSTM 網(wǎng)絡(luò)更為合適。文獻(xiàn)[8-9]指出,無(wú)論是預(yù)測(cè)股票價(jià)格還是股票收益,基于LSTM 神經(jīng)網(wǎng)絡(luò)的模型預(yù)測(cè)效果更好,風(fēng)險(xiǎn)更低。文獻(xiàn)[10]的分析表明,在金融市場(chǎng)預(yù)測(cè)中,LSTM 網(wǎng)絡(luò)適合此領(lǐng)域,并且以明顯的優(yōu)勢(shì)擊敗了其他預(yù)測(cè)模型。
盡管在時(shí)間序列和模式識(shí)別問題中,LSTM 網(wǎng)絡(luò)是一種強(qiáng)大的工具,能夠顯著地處理要解決的目標(biāo)問題,但LSTM 網(wǎng)絡(luò)仍存在一些不足。首先,包括LSTM 網(wǎng)絡(luò)在內(nèi)的神經(jīng)網(wǎng)絡(luò)模型缺乏解釋模型所獲得的最終決策的能力,無(wú)法為實(shí)現(xiàn)預(yù)測(cè)結(jié)果所使用的參數(shù)提供具體的解釋[11];其次,模型的參數(shù)通常由經(jīng)驗(yàn)決定,主觀性強(qiáng),會(huì)影響模型的擬合能力;最后,LSTM 網(wǎng)絡(luò)的神經(jīng)元數(shù)量、學(xué)習(xí)率和迭代次數(shù)難以確定,因此,研究人員一直在探索改進(jìn)LSTM 網(wǎng)絡(luò)的方法。文獻(xiàn)[11-12]分別使用基于小波變換和Adam、遺傳算法優(yōu)化LSTM 網(wǎng)絡(luò);文獻(xiàn)[13-15]采用粒子群算法(PSO)對(duì)LSTM 網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化。通過與遺傳算法、小波變換等算法比較,發(fā)現(xiàn)PSO 算法作為優(yōu)化算法求解精度更高、收斂速度更快、性能更優(yōu),在優(yōu)化應(yīng)用中使用頻率更高。盡管PSO 算法被廣泛應(yīng)用于LSTM 網(wǎng)絡(luò)的優(yōu)化,但優(yōu)化后的算法在股票市場(chǎng)卻少有應(yīng)用,尤其是經(jīng)過優(yōu)化后的PSO 算法對(duì)LSTM 網(wǎng)絡(luò)進(jìn)行優(yōu)化構(gòu)建的股票價(jià)格預(yù)測(cè)模型相對(duì)更少。
針對(duì)以上問題,本文將PSO 算法應(yīng)用于LSTM網(wǎng)絡(luò)的優(yōu)化,提出了基于改進(jìn)PSO 算法優(yōu)化LSTM的股票預(yù)測(cè)模型。通過優(yōu)化算法對(duì)LSTM 網(wǎng)絡(luò)的重要參數(shù)尋優(yōu),解決LSTM 網(wǎng)絡(luò)缺乏解釋模型所獲得的最終決策的能力以及受人為因素影響的問題,以提高預(yù)測(cè)精度。為了提高優(yōu)化效果,對(duì)相應(yīng)的PSO 算法進(jìn)行了優(yōu)化操作,通過動(dòng)態(tài)調(diào)整PSO 算法中的慣性權(quán)重學(xué)習(xí)因子來構(gòu)建動(dòng)態(tài)多群粒子群優(yōu)化器(Dynamic multi-swarm PSO,DMPSO),解決了PSO 算法容易陷入局部最優(yōu)的問題,提高了尋優(yōu)精度。優(yōu)化后的PSO 算法與LSTM 網(wǎng)絡(luò)相結(jié)合,構(gòu)建股票預(yù)測(cè)模型,提高了LSTM 網(wǎng)絡(luò)在處理時(shí)間系列數(shù)據(jù)時(shí)的有效性及精確性,從而提高了股票價(jià)格的預(yù)測(cè)精度。同時(shí),為了減少篩選出與待預(yù)測(cè)指標(biāo)高度相關(guān)的指標(biāo)特征,降低模型訓(xùn)練的成本及復(fù)雜度,提高模型預(yù)測(cè)精度,使用多種特征選擇算法構(gòu)建特征選擇委員會(huì)[16],進(jìn)行指標(biāo)的過濾篩選,得到完善的預(yù)測(cè)指標(biāo)體系。
LSTM 網(wǎng)絡(luò)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),它在RNN 的基礎(chǔ)上進(jìn)行了改進(jìn)[17],通過增加輸入門、遺忘門和輸出門,緩解了模型訓(xùn)練中梯度消失和梯度爆炸的問題,彌補(bǔ)了傳統(tǒng)RNN 模型的不足。
圖1 示出了LSTM 網(wǎng)絡(luò)的單元結(jié)構(gòu),共有4 層。圖1 中ht、ht-1為當(dāng)前單元及上一個(gè)單元的輸出;xt為當(dāng)前單元的輸入;sigmoid、tanh 為激活函數(shù);圖中的圓圈均表示向量之間的算術(shù)規(guī)則;Ct為神經(jīng)元在t時(shí)刻的狀態(tài);ft為遺忘閾值,該閾值通過sigmoid 激活函數(shù)控制細(xì)胞應(yīng)該如何丟棄信息;it為輸入閾值,該閾值決定了sigmoid 函數(shù)需要更新的信息,然后使用tanh 激活函數(shù)生成新的記憶Ct,并最終控制向神經(jīng)元狀態(tài)添加多少新信息;ot為輸出閾值,該閾值決定了sigmoid 函數(shù)輸出神經(jīng)元狀態(tài)的哪些部分,并使用tanh 激活函數(shù)處理神經(jīng)元狀態(tài),得到最終的結(jié)果。計(jì)算公式如下:
圖1 LSTM 網(wǎng)絡(luò)單元結(jié)構(gòu)Fig.1 LSTM network structure
其中:Wf、Wi、Wo、Wc分別為遺忘門、輸入門、輸出門以及神經(jīng)元狀態(tài)矩陣對(duì)應(yīng)的權(quán)系數(shù)矩陣;bf、bi、bo、bc分別表示對(duì)應(yīng)的偏移常數(shù)。根據(jù)上述公式,可以進(jìn)一步計(jì)算神經(jīng)元的狀態(tài)Ct和輸出ht。
通過3 個(gè)控制門機(jī)制,完成神經(jīng)元的內(nèi)部處理,保證LSTM 網(wǎng)絡(luò)能夠有效地利用輸入數(shù)據(jù),對(duì)過去長(zhǎng)期數(shù)據(jù)形成記憶,能夠?qū)W習(xí)長(zhǎng)期的依賴關(guān)系。
PSO 算法是一種元啟發(fā)式算法,它的思想源于優(yōu)勝劣汰的自然進(jìn)化,該方法模擬了社會(huì)行為,如鳥群聚集[18]。相比于普通的遺傳算法,PSO 算法沒有交叉與變異的操作,它通過學(xué)習(xí)當(dāng)前粒子群的最優(yōu)解來獲取最終解。
PSO 算法可描述為:假設(shè)在一個(gè)D維搜索空間,m個(gè)粒子構(gòu)成的一個(gè)種群,則t時(shí)刻第i個(gè)粒子的位置為,速度為,個(gè)體最優(yōu)位置為,全局最優(yōu)位置為gtbest,因而該粒子在t+1 時(shí)刻的速度和位置信息為式(7)和式(8)。
其中:ω為慣性權(quán)重;c1和c2為學(xué)習(xí)因子;r1和r2為均勻分布在[0,1]的隨機(jī)數(shù)。
特征選擇算法的定義為:從現(xiàn)有的特征集中,根據(jù)實(shí)際情況篩選出最適合作為訓(xùn)練特征集的方法。通常,對(duì)于給定的數(shù)據(jù)集,假設(shè)包含n個(gè)特征,則F={f1,···,fn}為特征集,特征選擇算法需要從F中挑選出一個(gè)合適的子集F={f1,···,fm} ,m為特征選擇后的特征數(shù),其中mn,以此實(shí)現(xiàn)數(shù)據(jù)的降維。 目前已有的特征選擇算法根據(jù)處理方式主要分為過濾式、封裝式及嵌入式。常見的過濾式特征選擇算法主要有最大信息系數(shù)(Maximal Information Coefficient,MIC)、皮爾遜(Pearson)相關(guān)系數(shù)法、方差選擇法、Relief 及卡方檢驗(yàn)法等;最常用的封裝式特征選擇算法為遞歸特征消除(Recursive Feature Elimination,RFE);最常用的嵌入式算法有Lasso 回歸及分類決策樹等。通過對(duì)不同類別的特征選擇算法比較,篩選出以下幾種常用算法:
(1)Pearson 相關(guān)系數(shù)。通過計(jì)算變量間的線性相關(guān)強(qiáng)度r來評(píng)估特征間的相關(guān)性,計(jì)算公式如下:
(2)MIC。該算法不僅能衡量變量間的線性相關(guān)關(guān)系,也可用于分析變量間的非線性相關(guān)強(qiáng)度。MIC 的算法流程是將兩個(gè)變量x和y在二維空間中構(gòu)成散點(diǎn)圖,形成x×y的網(wǎng)格,然后計(jì)算不同分割尺度下的互信息值I(X,Y) ,最大的互信息值則為max{I(x,y) },對(duì)此值進(jìn)行歸一化,通過式(10) 得到歸一化后的特征矩陣,式(10)中p(x,y)為X和Y的聯(lián)合概率密度函數(shù),p(x) 和p(y) 分別為X和Y的邊際概率密度函數(shù)。然后通過式(11)、式(12) 獲得MIC 值。
(3)Lasso 回歸。該算法屬于正則化回歸,主要通過構(gòu)建懲罰函數(shù)并對(duì)其正則化來防止產(chǎn)生過擬合現(xiàn)象,比較適合用于變量的選擇。懲罰函數(shù)如下:,
其中:m為樣本數(shù);n為特征數(shù);ω與θ分別是長(zhǎng)度為n、n+1 的 向 量;b為 常 數(shù);λ為 常 數(shù) 系 數(shù); ‖ω‖1為L(zhǎng)1 范數(shù)。
(4)RFE。通過多次迭代構(gòu)建模型對(duì)特征進(jìn)行篩選。每次迭代篩選出優(yōu)質(zhì)特征后,剩余特征繼續(xù)進(jìn)行下一次迭代,直到遍歷完所有特征,特征被篩選出來的順序則代表特征的優(yōu)劣,而是否為優(yōu)質(zhì)特征則通過設(shè)置一定的閾值來判斷。
(5)隨機(jī)森林(Random Forest,RF)。基于決策樹構(gòu)建的分類器,通過計(jì)算每個(gè)特征對(duì)每棵決策樹的貢獻(xiàn)度,然后以求平均值或者投票的方式計(jì)算出特征的最終貢獻(xiàn)度,以此比較篩選出貢獻(xiàn)較大的特征,實(shí)現(xiàn)對(duì)特征的重要性評(píng)估。
將PSO 算法與LSTM 網(wǎng)絡(luò)相結(jié)合,能有效地實(shí)現(xiàn)LSTM 網(wǎng)絡(luò)參數(shù)的尋優(yōu)。但傳統(tǒng)的PSO 算法容易在尋優(yōu)過程中陷入局部最優(yōu),影響尋優(yōu)效果,從而影響模型的預(yù)測(cè)精度。本文引入動(dòng)態(tài)調(diào)整理念,控制PSO 算法參數(shù)的動(dòng)態(tài)變化及實(shí)現(xiàn)尋優(yōu)過程中子群的動(dòng)態(tài)劃分來平衡算法的全局與局部搜索能力,實(shí)現(xiàn)更好的尋優(yōu)效果,從而有效提高預(yù)測(cè)模型的擬合能力,提高股票價(jià)格預(yù)測(cè)的準(zhǔn)確性。同時(shí)基于多種特征選擇算法構(gòu)建的特征選擇委員會(huì)篩選出優(yōu)質(zhì)指標(biāo),將其用于股票預(yù)測(cè)模型的訓(xùn)練,達(dá)到優(yōu)化預(yù)測(cè)過程的目的。
現(xiàn)有的研究中,通常使用單一的特征選擇算法,導(dǎo)致對(duì)樣本數(shù)據(jù)特征的篩選不夠全面,具有一定的局限性。為了能夠結(jié)合各特征選擇算法的優(yōu)點(diǎn),克服單一選擇算法存在的問題,本文使用Pearson 相關(guān)系數(shù)、MIC、Lasso 回歸、RFE 以及RF 特征選擇算法組成特征選擇委員會(huì),完成特征重要度的衡量,并通過委員會(huì)投票進(jìn)行最終的特征篩選。
圖2 示出了基于委員會(huì)投票的特征選擇模型的工作流程。由圖2 可知,此模型的工作流程分為兩個(gè)階段。
圖2 特征選擇模型工作流程Fig.2 Workflow of feature selection model
(1)重要指標(biāo)特征集的獲取。針對(duì)每個(gè)指標(biāo)特征使用選定的5 種特征選擇算法進(jìn)行重要度計(jì)算。計(jì)算后的重要度值使用三分位數(shù)的方式進(jìn)行分類。重要度值位于2/3 分位數(shù)與最大值之間的指標(biāo)為“強(qiáng)”指標(biāo);重要度值位于1/3 至2/3 分位數(shù)之間的指標(biāo)為“中”指標(biāo);而重要度小于1/3 分位數(shù)的指標(biāo)則為“弱”指標(biāo)。將“弱”指標(biāo)剔除,保留“強(qiáng)”與“中”指標(biāo),獲得重要的指標(biāo)特征集。
(2)最優(yōu)指標(biāo)特征集的獲取。針對(duì)篩選出的重要特征,將分別為其投票。投票流程則為統(tǒng)計(jì)每個(gè)指標(biāo)特征由5 種特征選擇算法計(jì)算出的重要度為“強(qiáng)”及“中”的個(gè)數(shù),因而各指標(biāo)的票數(shù)取值可能為1、2、3、4、5。為了能夠客觀地評(píng)估各指標(biāo)特征,本文將只選取獲得票數(shù)為3、4、5 的指標(biāo),而票數(shù)小于3 的指標(biāo)則表明大部分特征選擇算法認(rèn)為其不重要,在后續(xù)的研究中將不予考慮。
2.2.1 慣性權(quán)重的動(dòng)態(tài)調(diào)整 PSO 算法中的慣性權(quán)重ω能使粒子保持運(yùn)動(dòng)慣性,擁有拓展搜索空間的趨勢(shì),是平衡算法全局和局部搜索能力的重要參數(shù)。常用的慣性權(quán)重分配策略是線性遞減分配,雖易實(shí)現(xiàn),但隨著迭代次數(shù)的線性增加,仍然存在慣性權(quán)重過小、算法的全局搜索能力變差、易陷入局部最優(yōu)的問題,且在算法搜索后期,群體的多樣性會(huì)有所缺失,導(dǎo)致算法在搜索后期的收斂速度明顯變慢[19]。
本文采用余弦函數(shù)來控制慣性權(quán)值的變化[20],使ω的取值具有隨機(jī)性。同時(shí)加入服從貝塔分布的隨機(jī)調(diào)整策略,實(shí)現(xiàn)對(duì)慣性權(quán)重的動(dòng)態(tài)調(diào)整,從而更好地平衡算法的全局和局部搜索能力。其中,貝塔分布是在統(tǒng)計(jì)數(shù)據(jù)擬合中被廣泛使用的一組定義在(0,1)區(qū)間的連續(xù)概率分布,且能夠擬合出均勻分布、正態(tài)分布等多種分布形式[21]。動(dòng)態(tài)調(diào)整慣性權(quán)重的計(jì)算公式如下:
其中:ωmax和ωmin分別為慣性權(quán)重的最大值和最小值;Tmax為粒子最大迭代次數(shù);σ為慣性調(diào)整因子;betarnd 生成服從貝塔分布的隨機(jī)數(shù),a和b是貝塔分布的兩個(gè)參數(shù)。
2.2.2 學(xué)習(xí)因子的動(dòng)態(tài)調(diào)整 PSO 算法中的學(xué)習(xí)因子c1和c2主要用于調(diào)整粒子移動(dòng)到個(gè)體最優(yōu)和全局最優(yōu)的步長(zhǎng),為了加快迭代早期的搜索速度,提高全局搜索能力,通常需要將c1的值由大變小,c2的值由小變大,以方便迭代后期的局部求精搜索?,F(xiàn)有的優(yōu)化研究極少考慮對(duì)學(xué)習(xí)因子的優(yōu)化,而傳統(tǒng)的PSO 算法通常設(shè)置c1=c2,且等于一個(gè)固定值,不能滿足學(xué)習(xí)因子在實(shí)際應(yīng)用中的需求。在眾多尋優(yōu)算法中,正余弦函數(shù)常被用來調(diào)整尋優(yōu)參數(shù)[22],能夠通過多次迭代獲得大量的隨機(jī)解,實(shí)現(xiàn)參數(shù)的動(dòng)態(tài)變化,并且可以控制參數(shù)的大小范圍,避免隨著迭代次數(shù)的增加出現(xiàn)參數(shù)極大或者極小的情況。因此,本文使用余弦函數(shù)來改善學(xué)習(xí)因子,提出了基于余弦函數(shù)的學(xué)習(xí)因子計(jì)算方法,如式(15)和(16)所示:
隨著迭代次數(shù)的增加,余弦函數(shù)的絕對(duì)值也相應(yīng)增加,在(0,2)的取值范圍內(nèi),c1能夠非線性地減小,相反c2值能夠非線性地增大,從而在迭代過程中實(shí)現(xiàn)學(xué)習(xí)因子的動(dòng)態(tài)變化,獲得更好的尋優(yōu)效果。
2.2.3 粒子位置更新 為了加快PSO 算法的收斂速度,避免早熟現(xiàn)象的產(chǎn)生,本文對(duì)簡(jiǎn)化粒子群算法[20]進(jìn)行了改進(jìn),去除粒子的速度更新,在僅使用位置更新的前提下,再結(jié)合均值粒子群算法思想,通過使用個(gè)體最優(yōu)位置和全局最優(yōu)位置的線性組合取代算法中的個(gè)體最優(yōu)位置和全局最優(yōu)位置,因此能夠更好地控制粒子的飛行方向與當(dāng)前位置方向的偏移,保障尋優(yōu)過程的高效進(jìn)行,從而加快算法的收斂速度。具體的實(shí)現(xiàn)公式如下:
通過結(jié)合式(14)、式(15)、式(16) 動(dòng)態(tài)調(diào)整PSO 算法的慣性權(quán)重及學(xué)習(xí)因子,再與式(17)結(jié)合來簡(jiǎn)化粒子位置更新,實(shí)現(xiàn)了對(duì)PSO 算法的優(yōu)化,解決了PSO 算法容易陷入局部最優(yōu)的問題,同時(shí)可加快早期的搜索速度,提高全局搜索能力及尋優(yōu)精度。
2.2.4 動(dòng)態(tài)多子群的構(gòu)建 采用動(dòng)態(tài)多種群PSO 算法[23]對(duì)鄰域拓?fù)浣Y(jié)構(gòu)進(jìn)行改進(jìn),可以改變粒子的學(xué)習(xí)模式,實(shí)現(xiàn)子群的動(dòng)態(tài)劃分,改善PSO 算法的早熟現(xiàn)象。將整個(gè)粒子群劃分為若干個(gè)包含少量粒子的種群,小種群再利用自身的歷史最優(yōu)信息進(jìn)行搜索,結(jié)合隨機(jī)重組調(diào)度,即每間隔R代后進(jìn)行種群隨機(jī)重組。R為重組周期,以此實(shí)現(xiàn)種群間的信息交互。圖3 示出了動(dòng)態(tài)子群的構(gòu)建過程。所有子群并行搜索,沒有信息交換,每隔R次迭代后,子群隨機(jī)重組,就有可能使子群所獲得的最佳位置與其他子群的粒子進(jìn)行交換,從而創(chuàng)造更優(yōu)的條件來探索更好的尋優(yōu)方案。文獻(xiàn)[24]的研究結(jié)果表明,重組周期R為5 時(shí),尋優(yōu)效果最好,因而本文將R的值設(shè)定為5。
圖3 動(dòng)態(tài)子群構(gòu)建過程Fig.3 Construction process of dynamic subgroups
LSTM 模型中隱藏層的作用是將輸入數(shù)據(jù)的特征抽象化,以便進(jìn)行更好的線性劃分。其中的神經(jīng)元數(shù)量對(duì)應(yīng)著線性劃分的數(shù)量,若神經(jīng)元過少,LSTM 模型則不具備必要的學(xué)習(xí)能力和信息處理能力。相反,若神經(jīng)元過多,不僅會(huì)導(dǎo)致LSTM 模型的結(jié)構(gòu)復(fù)雜,還容易導(dǎo)致訓(xùn)練結(jié)果過擬合。在股票市場(chǎng)預(yù)測(cè)中,由于股票數(shù)據(jù)的時(shí)效性較強(qiáng),與待預(yù)測(cè)時(shí)刻間隔越短的數(shù)據(jù)對(duì)預(yù)測(cè)結(jié)果影響越大。為了使預(yù)測(cè)的結(jié)果更加精確,需要控制每次訓(xùn)練的樣本數(shù),選擇合適的時(shí)間窗大小。
為了解決上述問題,使模型網(wǎng)絡(luò)結(jié)構(gòu)與股票數(shù)據(jù)特征相匹配,本文采用改進(jìn)后的PSO 算法構(gòu)建動(dòng)態(tài)多群粒子群優(yōu)化器(DMPSO),并與LSTM 模型結(jié)合構(gòu)建了一個(gè)全新的股票價(jià)格預(yù)測(cè)模型(DMPSOLSTM)。該模型將時(shí)間窗口大小、batchsize、隱藏層神經(jīng)元數(shù)目作為尋優(yōu)對(duì)象。LSTM 模型的優(yōu)化工作分為4 個(gè)階段:
(1)參數(shù)及網(wǎng)絡(luò)結(jié)構(gòu)確定。首先明確LSTM 模型的網(wǎng)絡(luò)結(jié)構(gòu)及初始化參數(shù),分別包括輸入層、隱藏層和輸出層中神經(jīng)元的數(shù)量,以及各層神經(jīng)元之間相互連接的權(quán)重,同時(shí)包括模型訓(xùn)練時(shí)的時(shí)間窗口大小、batchsize。
(2)初始化編碼。根據(jù)待優(yōu)化參數(shù)所取的隨機(jī)值完成粒子位置信息的隨機(jī)初始化。
(3)確認(rèn)粒子評(píng)價(jià)函數(shù)。為了能夠充分評(píng)估參數(shù)最優(yōu)值,選取訓(xùn)練次數(shù)達(dá)到極限后得到的LSTM模型驗(yàn)證數(shù)據(jù)的均方誤差(MSE)作為個(gè)體適應(yīng)度函數(shù),以適應(yīng)度最小值作為PSO 算法的迭代目標(biāo)。適應(yīng)度函數(shù)f的定義如下:
其中:K為數(shù)據(jù)集的大??;yi為第i個(gè)真實(shí)值;為第i個(gè)數(shù)據(jù)的預(yù)測(cè)值。
(4)結(jié)果判斷。使用DMPSO 優(yōu)化器進(jìn)行尋優(yōu),當(dāng)達(dá)到收斂條件時(shí)停止尋優(yōu),輸出最終的尋優(yōu)結(jié)果,即模型參數(shù)最優(yōu)值。
LSTM 模型的優(yōu)化工作為預(yù)測(cè)模型構(gòu)建的核心,圖4 示出了預(yù)測(cè)模型的構(gòu)建流程。通過樣本數(shù)據(jù)訓(xùn)練模型,在此過程中對(duì)參數(shù)尋優(yōu)。
圖4 改進(jìn)的LSTM 預(yù)測(cè)模型Fig.4 Improved LSTM prediction model
具體的算法流程如下:
(1)預(yù)處理樣本數(shù)據(jù)。首先,檢測(cè)異常值并丟棄,補(bǔ)充缺值并排序,降低噪音;然后,將數(shù)據(jù)集進(jìn)行歸一化,以避免LSTM 網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的規(guī)模敏感;最后,進(jìn)行特征選擇,提高預(yù)測(cè)精度。
(2)初始化參數(shù)。確定待優(yōu)化參數(shù)的種群大小、迭代次數(shù)、學(xué)習(xí)因子、慣性權(quán)重和定義區(qū)間。
(3)初始化粒子的位置。隨機(jī)生成一個(gè)種群粒子Xi,0(h1,h2,n,m),其中,h1為第1 層隱藏層的神經(jīng)元數(shù),h2為第2 層隱藏層的神經(jīng)元數(shù),n為滑動(dòng)窗大小,m為L(zhǎng)STM 網(wǎng)絡(luò)的batchsize。
(4)根據(jù)式(18)計(jì)算粒子的適應(yīng)度值,通過粒子對(duì)應(yīng)的參數(shù)構(gòu)建LSTM 網(wǎng)絡(luò)模型,使用訓(xùn)練數(shù)據(jù)進(jìn)行模型的訓(xùn)練。通過驗(yàn)證數(shù)據(jù)進(jìn)行預(yù)測(cè),獲取預(yù)測(cè)結(jié)果的MSE 作為適應(yīng)度值。
(5)根據(jù)適應(yīng)度值及子群的劃分,確定粒子最優(yōu)值,并通過式(14)~式(17)更新粒子的位置信息。在迭代過程中,不斷更新粒子的位置至最大迭代次數(shù),輸出優(yōu)化后的參數(shù)值。
(6)利用最優(yōu)參數(shù)構(gòu)建預(yù)測(cè)模型。通過測(cè)試數(shù)據(jù)集完成預(yù)測(cè)驗(yàn)證。
實(shí)驗(yàn)選取上證指數(shù)(000001.SH)及深證成指(399001.SZ)對(duì)模型的性能進(jìn)行評(píng)估。數(shù)據(jù)中選取了股票市場(chǎng)的交易指標(biāo)、行情指標(biāo)以及技術(shù)指標(biāo),具體數(shù)據(jù)類別見表1。具體數(shù)據(jù)通過Choise 金融終端及優(yōu)礦平臺(tái)獲得,其中時(shí)間段為2000 年7 月3 日至2021 年1 月29 日,包括了上證指數(shù)4 995 條數(shù)據(jù)及深證成指的4 994 條數(shù)據(jù)。
表1 股票價(jià)格預(yù)測(cè)指標(biāo)Table1 Stock price prediction index
實(shí)驗(yàn)前對(duì)數(shù)據(jù)中的空缺數(shù)據(jù)進(jìn)行刪除操作,并按時(shí)間對(duì)數(shù)據(jù)進(jìn)行排序。為了更好地評(píng)估模型性能,選用SVM、RNN、RF、LSTM 模型及PSO-LSTM與改進(jìn)后的DMPSO-LSTM 模型進(jìn)行對(duì)比實(shí)驗(yàn)。為了對(duì)比優(yōu)化后PSO 算法的尋優(yōu)效果,同時(shí)也與PSOLSTM 模型的預(yù)測(cè)效果進(jìn)行了比較。
為了顯示每個(gè)模型的預(yù)測(cè)效果,采用均方根誤差(RMSE)、平均絕對(duì)百分比誤差(MAPE)、平均絕對(duì)誤差(MAE)以及決定系數(shù)(R2)這4 個(gè)指標(biāo)來衡量每個(gè)模型的性能。具體公式如下:
其中:N為樣本數(shù);為模型預(yù)測(cè)值;yn為樣本真實(shí)值;y'為樣本真實(shí)值的平均值。
3.2.1 預(yù)測(cè)指標(biāo)體系構(gòu)建 首先通過基于多種特征選擇算法的組合模型計(jì)算各特征的重要度,用于衡量各指標(biāo)的重要性,然后通過投票的方式?jīng)Q定是否保留指標(biāo)。表2、表3 分別示出了兩支股票數(shù)據(jù)指標(biāo)特征重要度的計(jì)算值,根據(jù)計(jì)算后的重要度值,將計(jì)算值按照“強(qiáng)(S)”、“中(M)”、“弱(W)”進(jìn)行分類。
表2 指標(biāo)重要度(上證指數(shù)000001.SH)Table2 Importance of indexs(Shanghai component index 000001.SH)
表3 指標(biāo)重要度(深證成指399001.SZ)Table3 Importance of indexs (Shenzhen component index 399001.SZ)
基于特征篩選規(guī)則,將票數(shù)小于3 的指標(biāo)剔除。其中,上證指數(shù)被剔除了6 個(gè)指標(biāo),分別為Rf、Applies、OBV6、RSI、ADX 以及Aroon;深證成指被剔除了5 個(gè)指標(biāo),分別為Applies、OBV6、ROC6、RSI及Aroon。
3.2.2 DMPSO 尋優(yōu) 為了能夠直觀地了解DMPSO優(yōu)化器的高效性,通過Griewank(f1)、Rastrigin(f2)和Schaffe(f3)這3 個(gè)具有代表性的函數(shù)進(jìn)行驗(yàn)證,公式如下:
表4 示出了3 個(gè)函數(shù)通過DMPSO 優(yōu)化器與PSO 算法的尋優(yōu)結(jié)果對(duì)比。通過各函數(shù)尋優(yōu)后的最優(yōu)適應(yīng)度值(Best fitness)、最小值(Mini)、平均值(Average)以及方差(Variance) 的對(duì)比可知,DMPSO優(yōu)化器的測(cè)試結(jié)果明顯優(yōu)于PSO 算法。
表4 PSO 與DMPSO 的尋優(yōu)結(jié)果Table4 Optimization results of PSO and DMPSO
使用DMPSO 對(duì)各支股票預(yù)測(cè)模型的參數(shù)尋優(yōu),圖5 示出了尋優(yōu)迭代圖。其中圖5(a)示出了上證指數(shù)數(shù)據(jù)訓(xùn)練所得最優(yōu)參數(shù),分別為時(shí)間窗大小為6、batchsize 為17、第1 層隱藏層單元數(shù)為62、第2層隱藏層單元數(shù)為88。圖5(b)示出了深證成指數(shù)據(jù)訓(xùn)練所得最優(yōu)參數(shù),分別為時(shí)間窗大小為1、batchsize 為3、第1 層隱藏層單元數(shù)為19、第2 層隱藏層單元數(shù)為6。
圖5 DMPSO 尋優(yōu)迭代過程Fig.5 Optimization iterative process of DMPSO
3.2.3 股票價(jià)格預(yù)測(cè) 基于3.2.2 節(jié)的參數(shù)最優(yōu)值構(gòu)建的預(yù)測(cè)模型進(jìn)行股票價(jià)格的預(yù)測(cè),將經(jīng)過特征篩選的兩支股票數(shù)據(jù)作為預(yù)測(cè)模型的輸入,驗(yàn)證模型的有效性及普適性,并通過與多種算法的預(yù)測(cè)結(jié)果進(jìn)行對(duì)比,使用模型評(píng)價(jià)指標(biāo)驗(yàn)證模型的高效性。
圖6 示出了各模型對(duì)上證指數(shù)收盤價(jià)的預(yù)測(cè)效果對(duì)比圖。從圖中可以看出,DMPSO-LSTM 模型的預(yù)測(cè)值與真實(shí)值之間的偏差較小,預(yù)測(cè)曲線更接近于真實(shí)值曲線,擬合程度更高。無(wú)論是預(yù)測(cè)的準(zhǔn)確性,還是減弱預(yù)測(cè)結(jié)果的滯后性,該模型都優(yōu)于其他預(yù)測(cè)模型。
圖6 各模型對(duì)上證指數(shù)的預(yù)測(cè)結(jié)果Fig.6 Forecast results of each model to Shanghai component index
為了更加直觀、準(zhǔn)確地驗(yàn)證各個(gè)模型的預(yù)測(cè)效果,體現(xiàn)本文模型的性能優(yōu)勢(shì),表5 示出了各個(gè)模型的評(píng)估結(jié)果。
由表5 可知,DMPSO-LSTM 模型對(duì)應(yīng)的RMSE、MAPE、MAE 值分別為35.921 4、0.006 7、25.337 4,相比其他模型,DMPSO-LSTM 模型的評(píng)價(jià)指標(biāo)都是最低的,且該模型的R2為0.931 5,更接近于1,擬合優(yōu)度越大,模型的擬合效果更佳。其中,DMPSO-LSTM的RMSE 指標(biāo)比SVM 低20.74%,比RF 低17.22%,比RNN 低17.37%,比LSTM 低10.23%,比PSO-LSTM低6.7%;MAPE 指標(biāo)比其他5 種模型分別低46.40%、44.17%、37.96%、32.32%、28.72%;MAE指標(biāo)則分別減少了28.00%、21.11%、25.89%、12.65%、9.19%。綜上可知,無(wú)論是相比于傳統(tǒng)的預(yù)測(cè)模型還是神經(jīng)網(wǎng)絡(luò)模型,DMPSO-LSTM 模型都擁有更好的預(yù)測(cè)效果。
表5 各模型的評(píng)估結(jié)果(上證指數(shù))Table5 Evaluation results of models( Shanghai component index)
為了驗(yàn)證模型的通用性,實(shí)驗(yàn)還選擇了深證成指數(shù)據(jù)進(jìn)行模型訓(xùn)練與預(yù)測(cè)。圖7 示出了DMPSOLSTM 模 型 與SVM、RNN、RF、LSTM 以 及PSOLSTM 模型的預(yù)測(cè)效果對(duì)比結(jié)果。從圖7 可以看出,DMPSO-LSTM 模型的預(yù)測(cè)效果優(yōu)于其他模型。表6示出了各個(gè)模型的評(píng)價(jià)結(jié)果。可以看出,DMPSOLSTM 模型的RMSE、MAPE 以及MAE 的值相比其他5 個(gè)模型都是最低,R2值更接近1,模型的預(yù)測(cè)效果最佳。
圖7 各模型對(duì)深證成指的預(yù)測(cè)結(jié)果Fig.7 Forecast results of each model to Shenzhen component index
表6 各模型評(píng)估結(jié)果(深證成指)Table6 Evaluation results of models( Shenzhen component index)
綜合預(yù)測(cè)結(jié)果表明,本文所提出的DMPSOLSTM 模型對(duì)于處理時(shí)間系列數(shù)據(jù)更有效,且預(yù)測(cè)精度較高,具有通用性。
為了提高股票價(jià)格預(yù)測(cè)模型的預(yù)測(cè)效果,本文提出了使用DMPSO 優(yōu)化器優(yōu)化LSTM 的股票價(jià)格預(yù)測(cè)模型,DMPSO 算法在參數(shù)尋優(yōu)時(shí),無(wú)論在收斂速度,還是搜索能力方面都體現(xiàn)出了明顯的優(yōu)勢(shì)。利用DMPSO 對(duì)LSTM 網(wǎng)絡(luò)的重要參數(shù)尋優(yōu),減少了人為因素影響,提高了模型的預(yù)測(cè)精度。實(shí)驗(yàn)對(duì)比了DMPSO-LSTM、PSO-LSTM、統(tǒng)計(jì)模型、其他機(jī)器學(xué)習(xí)模型的預(yù)測(cè)精度,結(jié)果表明DMPSO-LSTM 模型對(duì)于股票價(jià)格預(yù)測(cè)具有較高的預(yù)測(cè)精度,驗(yàn)證了該模型的有效性。實(shí)驗(yàn)數(shù)據(jù)選擇了上證指數(shù)及深證成指,也驗(yàn)證了模型的普遍適用性。同時(shí),實(shí)驗(yàn)考慮了冗余特征的存在,通過特征屬性間的相關(guān)性分析,篩選出與預(yù)測(cè)值負(fù)相關(guān)以及低度相關(guān)的特征,訓(xùn)練新的模型,在一定程度上進(jìn)一步提高了模型的預(yù)測(cè)精度。
面對(duì)復(fù)雜的股票市場(chǎng),DMPSO-LSTM 模型能夠?qū)崿F(xiàn)更加快速、準(zhǔn)確的預(yù)測(cè),可在一定程度上降低投資者的風(fēng)險(xiǎn)。該模型能夠高效地處理時(shí)間系列,具有可遷移性,針對(duì)其他時(shí)間系列問題,也具有一定的實(shí)際應(yīng)用價(jià)值。