














摘" 要:股票市場是國民經濟的一個重要組成部分,股票投資是一項高風險但同時高回報的投資方式。為了給股票投資者提供參考,對未來股票價格進行了預測研究。設計了一種基于深度學習的集成預測算法,對未來5日的股價進行預測。研究結果顯示,基于預測性能的權重分配集成方法相比基本模型平均絕對誤差(MAE)降低,在平均絕對誤差評價指標上給出了最好的結果。
關鍵詞:深度學習;股價預測;集成學習
中圖分類號:TP18" 文獻標識碼:A" " " 文章編號:2096-4706(2024)09-0114-06
Stock Price Prediction Based on Integrated Deep Learning
GUO Huiting, CHANG Yanzhen, LI Liang, XU Yongli
(Beijing University of Chemical Technology, Beijing" 100029, China)
Abstract: The stock market is an important component of the national economy, and stock investment is a high-risk but high-return investment method. To provide guidance for stock investors, a research is conducted to predict future stock prices. This paper designs an integrated prediction algorithm based on Deep Learning for predicting the stock price over the next 5 days. The research results show that the MAE of the weight allocation integrated method based on prediction performance reduces compared to the basic model and gives the best results on MAE index.
Keywords: Deep Learning; stock price prediction; integrated learning
0" 引" 言
股票市場是國民經濟的一個重要組成部分,隨著經濟的高速發展,股票市場也涌入越來越多的投資者。股票的價格波動受到多方面因素的影響,因此股票投資是一項高風險但同時高回報的項目。作為投資者來說,希望對股票價格有正確的預測從而達到降低風險獲得收益的目的。長期以來,股票預測一直是一項具有吸引力的任務,但由于市場的隨機性和參與者行為模式的波動性,股票預測仍然具有挑戰性。
股票價格預測的研究可以分為統計學和非統計學兩個方向。基于統計學的股票價格預測方法有傳統的廣義自回歸條件異方差模型(Generalized AutoRegressive Conditional Heteroskedasticity, GARCH)[1],差分整合移動平均自回歸模型(Autoregressive Integrated Moving Average model, ARIMA)[2]等,這些方法能很好的捕捉到股票價格的線性相關特征,但是對于非線性特征無法很好的處理。基于非統計學的股票價格預測方法可以分為兩支,傳統的機器學習方法和隨后發展起來的深度學習方法。隨著機器學習的興起,支持向量機(Support Vector Machine, SVM)[3]不僅可以用作分類,也可以進行回歸預測,陳懿冰[4]等人利用支持向量機模型對市場指數進行預測,發現在股市平穩性比較好的情況下預測結果比較好,但是突變情況下擬合不是很好,經過改進的決策樹預測模型[5]可以提取股票序列特征進行回歸預測,改進過后的BP神經也可以用來預測股價[6]。隨著深度學習在各個領域中的發展和應用,越來越多的學者開始嘗試利用深度學習進行股價預測。卷積神經網絡(Convolutional Neural Network, CNN)在圖像分類回歸問題中得到廣泛使用,Ashwin Siripurapu [7]將時序數據畫成折線圖來滿足CNN卷積的特征提取,但是沒有得到很好的結果;齊曉娜等[8]利用長短期記憶網絡(Long Short-Term Memory, LSTM)進行股票價格預測可以獲得比較優異的預測精度;劉震等[9]利用改進的基于循環神經網絡(Recurrent Neural Network, RNN)的模型LSTM可以實現對股票價格的預測;Transformer最初提出是為了機器翻譯問題[10],隨后也被廣泛應用于圖像處理等領域,張倩玉等人[11]利用注意力機制捕獲輸入特征參數的權重并結合門控循環神經網絡(Gated Recurrent Neural Network, GRU)進行股票價格預測;陳詩樂等人[12]提出了基于GA-Transformer模型的多因子股票預測方法,該方法使用遺傳算法(Genetic Algorithm, GA)進行特征選擇,并結合Transformer模型進行股票預測;也有學者融合情感特征如股票評論數據等自然語言來對股票價格進行預測[13]。
為了基于股票多因子歷史數據對未來5日的股票收盤價格進行預測,我們設計了一種基于深度學習的集成預測算法。這一算法將改進的Transformer編碼器模型、長短期記憶網絡和時間卷積網絡3種模型分別在單任務預測和多任務預測模式下訓練,為不同模型的單任務預測和多任務預測集成設計了一種新的權重分配方式。利用本文提出的算法,可以基于當下股票的歷史多因子數據對未來多日股票收盤價進行預測,為投資者股票操作提供參考。
1" "數據處理
1.1" 數據來源
本文采用的數據集來自IBM、洛斯保險、建設銀行和上證指數,股票數據通過招商證券客戶端下載得到。
1.2" 特征選擇
股票市場中被廣泛使用的是K線圖,K線圖數據包含股票的開盤價、收盤價、最高價和最低價,每日的K線圖放在一起就是日K線圖,日K線圖能反映大勢的狀況和價格信息;在各股票數據平臺上我們能觀察到在股票不同的趨勢位置,有與K線圖對應的成交量,很多交易信號需要K線圖結合成交量來判斷。這個5個特征信息是股票市場交易的重要依據,所以本文選取股票的開盤價、收盤價、最高價、最低價和成交量作為特征來源。
1.3" "數據歸一化
由于數據的量綱不同,我們對數據進行歸一化處理。本文采用了最小最大歸一化方法,根據式(1)將數據歸一化。我們按8:1:1的比例去劃分全部數據集,劃分出訓練數據、驗證數據和測試數據。公平起見,在選擇最大值最小值時只從訓練數據中選擇,即Di = {第i個因子的訓練數據},對五個因子分別取最大值和最小值,然后在因子內進行歸一化:
其中:i ∈ {1,2,3,4,5},k表示遍歷全部數據。歸一化后的數據如圖1所示。
1.4" "數據集劃分
通過滑動窗口構建數據集樣本,分別在劃分好的訓練數據、驗證數據和測試數據中按圖2方法構建訓練集、驗證集和測試集。驗證集用來保存最優模型,測試集用來預測,下文呈現的實驗結果均來自測試集。根據歷史m天的數據預測未來n天。本文實驗中m取128,在單任務回歸預測中n取1,在多任務回歸預測中n取5。
2" 網絡結構
根據股票的歷史數據來預測該股票未來的收盤價格屬于回歸問題,近年來,深度學習用來處理時間序列的常見模型有RNN、LSTM、TCN等,RNN網絡可以利用歷史數據對未來數據做出預測,但是學習不到長期依賴,而LSTM在RNN基礎上做了改進,所以以下實驗我們采用LSTM和TCN。Transformer最初用來處理機器翻譯問題,隨后在圖片處理上也有很好的應用,其關鍵組件注意力機制也被很多模型添加引用。去除詞嵌入組件以及對輸出進行通道縮減和添加線性層后,Transformer編碼層可以應用于回歸問題。
2.1" Transformer編碼層
以Transformer編碼層為主體結構,搭建了如圖3所示的深度神經網絡。不論是傳統的自然語言理解還是本文研究的時間序列,都需要考慮前后順序位置關系,用于自然語言處理的Transformer是將位置編碼加到詞向量中,而本文通過添加時間特征向量來體現時間信息[14]。
利用式(2)構造時間特征,選擇k = 1,即非周期構造一個維度,周期性構造一個維度。x是原始時間序列特征,sin是周期性激活函數,w和b是可學習的參數。在實驗中,sin函數使得算法能夠捕獲數據中的周期性行為,與此同時線性項(i = 0對應的公式)表示時間的非周期進程,用于捕獲輸入中的非周期性模式。
網絡的輸入是128×5的五因子歷史股票數據,經過Time2vector層加上時間信息后變為128×7的歷史數據,依次通過多頭注意力層,殘差和LayerNorm歸一化層,前饋神經網絡層和殘差和LayerNorm歸一化層,最后經過全局平均池化降低通道數,再經過線性層和dropout層輸出結果。
2.2" TCN時間卷積網絡
TCN模型是以CNN模型為基礎,并做了因果卷積(Causal Convolution)、膨脹卷積(DilatedConvolution)和殘差模塊(Residual block)的改進。搭建如4圖所示的TCN網絡結構。輸出序列經過一個全連接層后輸出最終結果。
2.3" LSTM長短期記憶網絡
LSTM是一種時間循環神經網絡,它的提出是為了解決一般的RNN(循環神經網絡)存在的長期依賴問題,數據經過LSTM后再添加一個全連接層輸出最終結果。LSTM網絡結構如圖5所示。
2.4" 集成學習
集成學習是一種學習器結合的方法,最初用于分類問題,由訓練數據構建一組基學習器,然后通過對每個基學習器的預測進行投票來產生最終預測。常見的集成方法有兩種,同構集成和異構集成,本文采用的是異構集成,用不同類型的學習器,即我們前文提到的3種模型框架。
對回歸問題來說,基于3種模型預測未來5天的股票收盤價,其中包括單任務回歸預測和多任務回歸預測,將單任務回歸預測第k天的結果 ,i = 1,3,5以及多任務回歸預測中第k天的結果 ,i = 2,4,6進行集成得到最終的預測結果,其中i為奇數表示3種模型單任務預測,i為偶數表示3種模型多任務預測,i = 1,2表示Transformer Block;i = 3,4表示TCN Block;i = 5,6表示LSTM Block。預測第k天的整體流程圖如圖6所示,其中k = 1,2,3,4,5。集成的計算公式如下:
其中" 表示集成的權重,在平均集成下,=1/6。
在經典的集成預測中,每一個基本預測模型在最終的預測中占有完全相等的投票權。一個自然的想法是,動態的為所有預測模型設置集成權重,使得預測精度更高的預測模型獲得更大的集成權重,從而提升集成預測的準確性。這里,我們利用平均絕對誤差(Mean Absolute Error, MAE)來刻畫預測模型的準確性,MAE越小的模型被賦予越大的集成權重。集成權重的具體計算方式為:
其中" 表示第k個任務中第i個模型在驗證集上的MAE值,。在上述公式中,首先計算每一個模型的平均絕對誤差(MAE),進而計算每一個MAE與最大MAE的“差距”,將這些“差距”進行歸一化作為模型對應的集成權重。這樣設置權重,可以使得MAE越小的模型在集成預測中的權重越大。
2.5" 損失函數和優化器
對于回歸問題來說,我們選擇均方誤差損失(Mean-Square Error, MSE)來作為損失函數,單任務預測的損失函數如式(5)所示,多任務預測的損失函數如式(6)所示:
其中" 和" 分別表示單任務預測下第i個樣本的真實值和模型的預測值, 和" 分別表示多任務預測下第i個樣本第k天的真實值和模型的預測值。
選擇Adam作為優化器,Adam結合了AdaGrad和RMSProp兩種算法的優點,對梯度的一階矩估計和二階矩估計進行綜合考慮,計算出更新步長,通過權重的不斷更新使損失值越來越小。
2.6" 評估指標
本文選擇MAE,平均絕對百分比誤差(Mean Absolute Percentage Error, MAPE),決定系數R2和相關系數r為算法的評估指標,這四種指標的計算公式如下:
其中" 和" 分別表示真實值和模型預測值, 表示樣本真實值的平均值,。
3" 實驗結果分析
3.1" 實驗設置
本文提出的深度學習回歸模型數在TensorFlow框架下實現,設備為GPU的服務器,TensorFlow版本2.6.2,Linux系統版本5.4.0。
將原始數據最小最大歸一化之后通過滑動窗口構建訓練集、驗證集和測試集。實驗分為單任務回歸預測和多任務回歸預測兩部分,單任務回歸預測是根據過去128天數據分別預測未來5天中單天的收盤價,多任務回歸預測是根據過去128天數據預測未來連續5天的收盤價。將上述兩類實驗分別在3種模型上訓練預測,模型具體的超參數設置如表1所示。
3.2" 結果分析
將模型在測試集上進行預測,由于初始數據進行了歸一化,下面的結果都是返回歸一化之前即原始價格去計算損失。模型名稱后綴O表示單任務回歸預測,C表示多任務回歸預測,平均集成表示權重取1/6的單任務回歸預測和多任務回歸預測集成,本文集成表示按本文方法重新分配權重的單任務回歸預測和多任務回歸預測集成。
表2是預測未來5天股票價格在4個數據集上的MAE結果,可以看出本文設計的權重分配方式相比平均集成在4個數據集上MAE都減小,并且本文集成相比6種基本模型的MAE值都達到了最優,說明本文方法的有效性。在和SVR [4]模型的比較中本文集成的MAE值更優。和ARIMA [2]模型的比較中3個數據集上最優,剩余1個數據集上次優。
表2的結果顯示在5天的總任務上本文集成都達到最優,下面對IBM數據集結果在單天維度上進行詳細分析。表3分別展示了IBM測試集在不同模型以及單天維度上的結果。從表3中可以看出,單任務回歸預測和多任務回歸預測在不同的模型上都各有優勢,對于TCN和LSTM來說,單任務和多任務的結果差距不是很明顯,但是對于Transformer來說,單任務預測未來第1天的結果優勢明顯,但是隨著預測時間的向后推移,Transformer多任務的優勢體現出來;整體來看,無論是單任務預測還是多任務預測,預測未來的時間越遠,誤差越大。
在單天維度上,應用本文提出的權重分配方式后預測精度相比于平均集成都有明顯提高,說明該種權重分配方式的有效性;在原先6種模型上,第1天優勢在TCN_O,第2天優勢在TCN_C,第3天優勢在LSTM_O,最優值分散于不同的模型上,經過分配權重的集成后,在單天維度上指標的優勢變得集中,單天維度的最優值不再分散于各個模型上,這也是集成方法的優勢所在。
將單任務預測和多任務預測的6種模型按本文方法分配權重集成在測試集上第3天的預測結果以及MAE畫圖,基線模型選取的是Transformer Block單任務預測在測試集第3天上的結果。從圖7中可以看出本文方法數據擬合的比較好,MAE波動更小且靠近0。
為了展示本文方法在股票價格的預測值和真實值的分布,計算決定系數和相關系數如表4所示,通過結果可以看出兩者存在強相關性,同時隨著時間的向后推移,相關系數變小,這也和前文提到的預測未來的時間越遠MAE誤差越大相符合。
將股票價格的真實值作為橫軸,本文方法的預測值作為縱軸,繪制第3天的散點圖如圖8所示,可以更直觀地看出兩者的相關性。
4" 結" 論
本文基于股票的歷史開盤價、收盤價、最高價、最低價和交易量數據,提出了預測未來多日股票收盤價的集成算法。這一算法將改進的Transformer編碼器模型、長短期記憶網絡和時間卷積網絡3種模型分別在單任務預測和多任務預測模式下訓練,并且我們為不同模型的單任務預測和多任務預測集成設計了一種新的權重分配方式。在測試集上的結果表明本文方法有較低的平均絕對誤差和較高的相關性。通過本文方法投資者可以作為參考來預測未來股價進行股票投資。未來的研究考慮納入更多的因子作為特征,并且加入投資者情緒信息來輔助預測。
參考文獻:
[1] BOLLERSLEV T. Generalized autoregressive conditional heteroskedasticity [J].Eeri Research Paper,1986,31(3):307-327.
[2] BOX G E P,PIERCE D A. Distribution of residual autocorrelations in autoregressive-integrated moving averagetime seriesmodels [J].Journal of the American statistical Association,1970,65(332):1509-1526.
[3] CORTES C,VAPNIK V. Support vector machine [J].Machine learning,1995,20(3):273-297.
[4] 陳懿冰,張玲玲,聶廣禮,等.基于改進的支持向量回歸機的金融時序預測 [J].數學的實踐與認識,2012,42(4):38-44.
[5] 李想.基于XGBoost算法的多因子量化選股方案策劃 [D].上海:上海師范大學,2017.
[6] ZHANG H. The forecasting model of stock price based on PCA and BP neural network [J].Journal of Financial Risk Management,2018,7(4):369-385.
[7] SIRIPURAPU A. Convolutional networks for stock trading [J].Stanford Univ. Dep. Comput. Sci,2014,1(2):1-6.
[8] 齊曉娜,張宇敬,鄭艷娟,等.深度學習算法在股票價格預測方面的研究 [J].軟件,2021,42(7):70-72.
[9] 劉震,王惠敏,華思瑜,等.基于深度學習的股價預測研究 [J].科技創新導報,2018,15(13):247-248.
[10] VASWANI A,SHAZEER N,PARMAR N,et al. Attention is all you need [C]//NIPS'17: Proceedings of the 31st International Conference on Neural Information Processing Systems.Red Hook:Curran Associates Inc,2017:6000-6010.
[11] 張倩玉,嚴冬梅,韓佳彤.結合深度學習和分解算法的股票價格預測研究 [J].計算機工程與應用,2021,57(5):56-64.
[12] 陳詩樂,王笑,周昌軍.基于GA-Transformer模型的多因子股票預測 [J].廣州大學學報:自然科學版,2021,20(1):44-55.
[13] 嚴冬梅,何雯馨,陳智.融合情感特征的基于RoBERTa-TCN的股價預測研究 [J].數據分析與知識發現,2022,6(12):123-133.
[14] KAZEMI S M,GOEL R,EGHBALI S,et al. Time2vec:Learning a vector representation of time[J].arXiv:
1907.05321 [cs.LG].(2019-07-11).http://arxiv.org/abs/1907.05321.
作者簡介:郭慧婷(1998—),女,漢族,山西晉中人,碩士在讀,研究方向:深度學習在金融時間序列上的應用;常延貞(1981—),女,漢族,山東濱州人,副教授,博士,研究方向:偏微分方程數值解、計算最優控制;厲亮(1984—),男,漢族,臺灣苗栗人,副教授,博士,研究方向:隨機偏微分方程、金融數學、量化投資+AI;通訊作者:徐永利(1982—),男,漢族,山東濟南人,教授,博士,研究方向:統計學習理論、機器學習、計算機輔助青光眼診斷。