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