魏健 趙紅濤 劉敦楠



摘 要:股票收盤價的漲跌受到多方面的影響,針對傳統單一的算法難以準確預測收盤價,而CNN-LSTM和GBDT為神經網絡模型和決策樹算法中的杰出代表。設計基于卷積神經網絡(Convolutional Neural Network,CNN)、長短時記憶神經網絡(Long Short-Term Memory,LSTM)、梯度提升決策樹(GradientBoostingDecisionTree,GBDT)、CNN-LSTM的組合預測模型,通過Python對上證指數進行實例驗證以及與各單項預測模型比較得出,組合預測方法正確預測收盤價漲跌的比例遠高于單項預測模型,其正確預測的比例達到了94.33%,在其他誤差標準上,組合模型也有一定的優勢。
關鍵詞:收盤價短期預測;灰色關聯;DBSCAN聚類;CNN-LSTM模型;BP組合模型;GBDT模型
中圖分類號:F830.91? ? ? ? 文獻標志碼:A? ? ? 文章編號:1673-291X(2021)09-0075-05
引言
在股票市場中利用量價關系可以推測股價的走勢,近年來股票的漲跌也越來越受到人們的關注,所以精準預測股票走勢無疑是一個很重要的問題。根據近些年來金融工作者的反復研究,發現精準預測收盤價對判斷股票的走勢有指導性作用[1]。
收盤價既是股票交易的暫時終點也很可能是新的價格變動的開端,因此它對預測股票變化趨勢有重要意義[2]。
蘇適等(2017)[3]和金之榆等(2019)[4]介紹了異常值的數據處理方法,認為可以使用DBSCAN聚類的方法來篩選異常值。孫麗潔(2020)[5]和馬煜等(2020)[6]使用灰色關聯度來判斷非線性各指標之間的關系,同時選用關聯度較高的指標作為重點研究對象。勾玄等(2020)[7]和歐陽紅兵等(2020)[8]提出使用神經網絡模型來預測股票收盤價,尤其是CNN和LSTM模型在預測中有良好的效果。劉月峰等(2020)[9]使用CNN-LSTM模型來對電力負荷值進行預測,本文也嘗試用此模型對次日股票收盤價進行預測。蘭筱莉(2018)[10]使用GBDT模型對股票收盤價進行預測,進而選出盈利可能性更大的股票。張晨等(2019)[11]提出,利用集成模型進行預測。鄧云濤等(2020)[12]指出,組合模型可以更好地對目標值進行預測。范中洲等(2020)[13]使用BP神經網絡確定各指標的權重,將各個指標更好地組合在一起,本文參考用此方式來提高對股票漲跌預測的準確率。使用BP神經網絡可以通過反向傳播算法調節神經網絡各層的權重系數,一旦有新的數據出現也可再次調整權重系數,從而尋找最優值。
股票市場的漲跌受多方面的影響,其收盤價的變化規律受多種因素影響,許多單一的方法難以勝任對股票漲跌的預測。相對而言,組合預測方法將兩種或多種方法結合在一起,使用權重系數將各種方法聯結在一起,能夠起到更加精準預測的效果。
在單項預測模型的選擇上,本文考慮到CNN-LSTM模型結合了CNN和LSTM的優點,很大程度上克服了輸入序列長度過長而導致的梯度消失的現象。此外,決策樹集成模型學習能力強,泛化能力好,GBDT模型是決策樹集成模型的典型代表。所以,本文選用上述模型作為單項預測模型。
本文使用網易財經的股票數據,研究基于BP神經網絡確定權重的組合預測方法,并以上證指數為例進行實證研究,希望提出一種可以準確預測股票收盤價漲跌的方法。
一、單項預測模型介紹
(一)CNN-LSTM模型
CNN-LSTM模型對股票收盤價進行預測的過程中,首先利用CNN提取數據特征,消除噪聲并尋找不同維度數據之間的關系。然后將CNN處理后的信息導入LSTM網絡。LSTM可以學習時序之間的特征,從而在很大程度上解決了LSTM間隔時間較長而忽略相關信息的劣勢[3],具體算法流程如下頁圖1所示。
CNN-LSTM計算步驟:
第一步,將經過數據預處理的數據輸入卷積神經網絡。第二步,卷積層中的卷積核負責提取數據特征,池化層通過過濾不重要信息,加強重要信息。第三步,經過Flatten層,將經過卷積層和池化層處理的數據構造為特征向量形式輸入LSTM層。第四步,LSTM層可以學習時間序列之間的關聯,學習特征內部的變化規律。第五步,Dense層負責進一步學習數據中隱含的特征,起到加強學習的作用。第六步,Dropout降低過擬合。
由于CNN、LSTM算法為CNN-LSTM模型的一部分,所以下文不再對CNN、LSTM模型的細節做過多敘述。
(二)GBDT模型
GBDT是一種基于Boosting提升樹的算法。Boosting 思想是在剛剛建立決策樹的時候每個樣本的權重都一樣,在前一棵樹學習完畢之后,后面的決策樹根據前面樹學習的誤差來調整自身的權重。從而將重點集中在殘差較大的決策樹[17]。GBDT在Boosting上加入了梯度下降運算,每一次建立決策樹都在前一個決策樹的梯度下降方向,從而更好地利用前者的信息。
GBDT 算法流程:
設前一輪計算得到的決策樹是ft-1(x),損失函數:
L(y,ft-1(x))
式中,x為輸入值,y為真實值,ft-1(x)為模型預測函數。
損失函數的負梯度如式(1)所示:
得到本輪損失函數:
L(y,ft(x))=L(y,ft-1(x)+ht(x))(2)
結果為弱回歸樹。
求出使得損失函數最小的輸出值cij:
得到了本輪的決策樹擬合函數如下:
E為單位矩陣。
本輪得到的強回歸樹為:
GBDT模型的流程如圖2所示。
(三)BP組合模型
BP神經網絡(BP Neural Network)由三部分組成,分別是輸入層、隱含層和輸出層。設輸入層包括m個節點,設其輸入向量為(x1,x2,……xm)T,其隱含層包含k個節點,其輸出變量為(y1,y2……yk)T。其中,輸入層和隱含層的權重用矩陣A表示,A=(aij)m×k。隱含層和輸出層的權重用矩陣B表示,B=(bij)k×n。因為是預測模型,所以輸出層只有一個神經元。設經過BP神經網絡計算輸出的向量為D=(d1,d2,……dn)T,真實值為Z=(z1,z2,……zn)T。
隱含層輸出如式(6)所示:
輸出層輸出如式(7)所示:
1.計算誤差。設神經網絡某一個神經元的輸出值和真實值的誤差為Ei:
總誤差:
2.反向傳播。反向傳播是由輸出層輸出d與真實值o相比較得到的誤差信號?啄0,以上述的誤差對各層的連接權進行調整[8];誤差信號?啄0反向傳至隱含層,得到隱含層的誤差信號?啄yj,由此對輸入層與隱含層間的連接權進行調整。計算公式如式(10)至式(12)所示:
zj(t)=zj(t-1)zj(t)=zj(t-1)(12)
本文將CNN-LSTM、CNN、LSTM、GBDT方法的預測值作為輸入變量輸入至BP神經網絡,最終經過運算得到了預測值。
二、算例分析
(一)誤差標準
在對于上證指數的次日收盤價預測中,一共使用有效數據1 457條,將前1 200條數據作為訓練集,時間跨度為2014年1月2日至2018年12月28日,其余為測試集,時間跨度為2019年1月2日至12月30日,使用平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)和均方根誤差(Root Mean Square Error,RMSE)、均方誤差(Mean-Square Error,MSE)來測評模型預測的誤差。其表達式如式(13)至式(15)所示:
其中,N表示樣本數量,yi表示股票第i日收盤價的實際值,i表示股票第i日收盤價的預測值。除了上述三種誤差外,再增加預測漲跌的準確率。對于預測收盤價的漲跌是否準確地計算,是用后一天的收盤價減去前一天的收盤價與模型的預測值減去前一天的收盤價對比,若符號相同則認為正確地預測了漲跌,最后用符號相同的個數除以總個數即為結果。
(二)數據預處理
1.異常值處理。異常值的存在很大程度上影響了預測的效果。本節采用DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)對異常值進行檢測。本節使用的數據為2014年1月2日至2019年12月31日的數據,總共有1 463條數據。
DBSCAN 算法中有兩個重要參數:Eps 和 MmPtS。Eps是劃分一定密度點所需要的半徑,MmPts 為閾值[9]。
本節運用python中sklearn庫進行DBSCAN算法運算。在此運算過程中,模型參數的設定是聚類中極其重要的一步。經過仔細調試,確定參數分別設置為eps=1.0,min_samples=5。
經過DBSCAN聚類處理,將異常值標注為-1,共篩選出6條異常值數據。由于一共存在14個指標,所以無法使用圖像直觀地進行觀察,經過處理之后的有效數據總共1 457條數據。
2.灰色關聯分析。在本案例分析中,對于本文初步選取能夠量化的幾個指標進行分析,包括前一交易日的最高價、最低價、開盤價、收盤價、漲跌額、漲跌幅、成交量、成交金額作為當日股票收盤價的影響指標。由于上述影響指標過多,在進行下文訓練分析時效率過低,本案例將對其進行篩選。
指標篩選的方法有很多,如Person相關系數、灰色關聯度(Grey Relation)等,對于本案例所研究的數據而言,指標對于收盤價的影響大都是非線性的。因此,選擇灰色關聯度[11]作為篩選指標的方法。
從表1可以看出,這9個指標與上證指數下一個交易日收盤價的灰色關聯度。為了使得計算快捷,本文選擇關聯度大于0.9的指標。故本文選擇最高價、最低價、開盤價、收盤價、總市值、流通市值這6個指標作為單項預測模型的輸入樣本,預測上證指數下一日收盤價。
(三)預測收盤價
1.CNN-LSTM模型。在本節預測次日上證指數收盤價的過程中,設置三層CNN層,其中卷積核設定為20個,stride=1;設置兩層LSTM層每層設定20個神經元;使用兩層Dense層,神經元數量設置為16個。訓練次數設定為1 000次,batch_size=1 200,輸出結果如下頁圖4所示。
雖然從圖4看出預測值對于真實值的擬合情況很好,但是對于次日漲跌預測的準確率只有56.65%,這是由于影響股票漲跌的因素有很多,包括線性因素和非線性因素,所以單獨的一個模型并不能完好地反映所有影響收盤價漲跌的因素。
2.GBDT模型。在參數設置中,設置n_estimators=100,min_samples_split=2,min_samples_leaf=1,從而得到結果如圖5所示。由圖5可知,在前40個數據的預測中,由于收盤價持續走低,造成了GBDT預測不準確的現象,而且在訓練集中的2015年收盤價持續升高,這也造成了測試集中收盤價走低過程中預測不準的現象。
從表2可以看出,單項預測模型對于股票漲跌的預測并不好,這是由于影響股票漲跌的因素有很多,包括線性因素和非線性因素,所以單獨的一個模型并不能完好地反映所有影響收盤價漲跌的因素[19],因此需要綜合這幾種算法[12],此處引入組合模型,而組合預測方法最重要的是確定幾種單項預測模型的權重。
3.BP組合模型。本節使用CNN-LSTM、GBDT、CNN、LSTM四種算法對于2017年9月7日至2019年12月30日收盤價的預測值為輸入變量,2017年9月7日至2019年12月30日的真實收盤價作為期望輸出值。同前文劃分訓練集和測試集類似,將2017年9月7日至2018年12月28日的數據作為訓練集,2019年1月2日至12月30日的數據作為測試集。在訓練過程中即確定了神經網絡各層的權重系數,并在測試集中進行驗證[14~16]。
本文采用固定參數法[18]來調節模型參數,下面以BP神經網絡中的訓練次數和batch_size為例來確定BP組合模型的最優參數。以下給出參數變化和MAPE的關系圖。
從圖6可知,應設置2層隱藏層,每層神經元設定10個神經元,訓練次數定為1 000次,batch_size=500。
從表3得知,組合模型在預測漲跌的準確率方面比CNN-LSTM、CNN、LSTM、GBDT增加了37.68%、41.1%、43.38%、37.68%。同時在其他的誤差標準上,組合模型也具有一定優勢。
結語
本文采用BP神經網絡確定權重,將CNN-LSTM、CNN、LSTM、GBDT四種算法組合在一起[20],通過分析上證指數數據進行實例分析。從前面的分析可見,組合預測對上證指數收盤價的幾個峰值的預測效果都比較好,特別在預測漲跌方面的準確率,準確率達到了94.33%。本文暫時并未給出經過精準預測之后選擇股票的策略,不過顯然精準預測收盤價對于后期選股有著十分重要的意義,本文提出的方法也有著很大的應用潛力。
參考文獻:
[1]? 范高樂.我國不同股票指數的風險及績效評估[J].技術經濟與管理研究,2020,(4):112-116.
[2]? 孫德山,任靚.基于主成分分析和遞歸神經網絡的短期股票指數預測[J].遼寧師范大學學報:自然科學版,2019,(3):301-306.
[3]? 蘇適,周立棟,萬筱鐘,陸海,嚴玉廷,王飛.計及氣象因素的用電負荷短期分時分類預測模型與方法[J].電力建設,2017,(10):76-83.
[4]? 金之榆,王毛毛,史會磊.基于DBSCAN和改進K-means聚類算法的電力負荷聚類研究[J].東北電力技術,2019,(6):10-14.
[5]? 孫麗潔.基于熵權—灰色關聯分析的電動汽車充電基礎設施PPP項目風險評價研究[J].上海節能,2020,(4):285-292.
[6]? 馬煜,黃哲洙,鐘麗波,李然,楊寧.基于CNN和SVR相結合的電力負荷預測分析[J].東北電力技術,2020,(2):37-41.
[7]? 勾玄,肖先勇.基于經驗模式分解與LSTM神經網絡的短期電價預測模型[J].西安理工大學學報,2020,(5):1-8.
[8]? 歐陽紅兵,黃亢,閆洪舉.基于LSTM神經網絡的金融時間序列預測[J].中國管理科學,2020,(4):27-35.
[9]? 劉月峰,楊宇慧.基于CNN-LSTM的短期電力負荷預測研究[J].科技創新與應用,2020,(18):84-85.
[10]? 蘭筱莉.基于GBDT等機器學習算法的新股量化策略研究[D].成都:西南財經大學,2018.
[11]? 張晨,邱彤.基于決策樹集成模型的加油站銷量預測[J].計算機與應用化學,2019,(6):615-619.
[12]? 鄧云濤,張文君,周文韜,劉祥龍.基于AHP-PCA的熵組合權重的居民點用地適宜性評價——以內江市為例[J].西南科技大學學報,2020,(1):45-50.
[13]? 范中洲,趙羿,周寧,趙沖,張文燁.基于灰色BP神經網絡組合模型的水上交通事故數預測[J].安全與環境學報,2020,(3):857-861.
[14]? 吳京龍.基于灰色關聯度的GM(1,1)-BP神經網絡組合模型研究[J].重慶理工大學學報:自然科學版,2019,(11):207-210.
[15]? 陳芳,張迪,衛微,郭娜.基于ARIMA和BP神經網絡的民航事故征候率預測[J].安全與環境學報,2019,(6).
[16]? 閆鵬洋,王利寧,郭培文,劉濤.基于組合賦權的遺傳算法優化BP神經網絡巖爆預測研究[J].廣東土木與建筑,2019,(10):66-70.
[17]? 林慧煜.對上證指數收盤價預測的方案策劃[D].上海:上海師范大學,2019.
[18]? 楊紅軍,王勝輝,李瀟瀟.基于最優加權組合模型的光伏出力預測[J].沈陽工程學院學報:自然科學版,2019,(4):300-305.
[19]? 林娜娜,秦江濤.基于隨機森林的A股股票漲跌預測研究[J].上海理工大學學報,2018,(3):267-273+301.
[20]? 周俊峰,胡詩堯,安佳坤,韓璟琳,賀春光,馬國真.基于熵權法和灰色關聯度的中壓配電網供電水平關鍵性指標研究[J].科技通報,2019,(12):101-104.
Short Term Forecasting Method of Stock Closing Price Based on Combination Model
WEI Jian1,ZHAO Hong-tao1,LIU Dun-nan2
(1.School of Mathematics and Physics,North China Electric Power University,Beijing 102206,China;
2.School of Economics and Management,North China Electric Power University,Beijing 102206,China)
Abstract:The rise and fall of stock closing price is affected by many aspects.Traditional single algorithm is difficult to accurately predict the closing price,and CNN-LSTM and GBDT are neural network models,which are outstanding representatives of neural network and decision tree algorithm.Therefore,this paper designs a long short term memory neural-convolutional neural network(CNN-LSTM),gradient boosting decision tree(gradient boosting decision tree,GBDT).The combined forecasting model of GBDT,CNN and LSTM,through the verification of Shanghai stock index by Python and the comparison with each single forecasting model,shows that the proportion of correct prediction of closing price rise and fall by combination forecasting method is far higher than that of single prediction model,and the correct prediction proportion reaches 94.33%.In other error standards,the combination model also has certain advantages.
Key words:short term forecast of closing price;grey relation;DBSCAN clustering;CNN-LSTM model;BP combination model;GBDT model