王浩文 劉娟 郭亞



摘要:對于股票趨勢的準確預測具有重要的商業價值,將股票趨勢預測任務轉化為二元分類問題,提出了一種基于改進損失函數的股票預測方法,使用小波變換對原始數據進行去噪處理,通過隨機森林算法對技術指標進行篩選。實驗選擇了滬深300等指數與個股,對提出的改進方案進行驗證,結果表明改進后的預測模型僅使用15個技術指標作為輸入特征,對于不同市場的指數與個股仍然具有很好的預測能力,模型平均準確率達到60.6%,平均精確率達到62.2%。
關鍵詞:股票預測;小波變換;隨機森林;長短期記憶神經網絡(LSTM);損失函數
一、前言
經濟的高速發展帶動著人們投資理念的進步,越來越多的民眾通過股票進行投資[1]。同時,作為一國宏觀經濟的“晴雨表”,股票的價格變動也直接影響經濟系統的健康運行[2]。因此,股票預測引起了社會各界的廣泛關注。
隨著人工智能技術的不斷發展,一些學者借助一些經典的技術指標作為機器學習模型的輸入特征進行預測,例如MACD(異同移動平均線)、RSI(相對強弱指標)等。鄧烜堃選擇MACD等48個經典的技術指標進行預測,取得了上佳的效果[3]。伯毅創造了一種新穎的支撐指標,并證明了該指標的顯著作用[4]。
技術指標對于模型有著非常重要的意義,但特征個數的增加有時并不能帶來精度的提升。章睿[5]從A股數據中提取了共166個特征,當特征數達到60個時,模型的預測精度已達瓶頸。因此,如何選擇與未來走勢最具相關性的特征指標,是一個重要的研究方向。
就股票預測任務而言,不同的評價指標反映著模型在不同方面的預測能力。而目前,對于股票預測的研究在評價指標上往往缺乏側重[6],本文基于投資者普遍存在的損失厭惡心理[7],將模型的精確率作為側重點,對傳統的二元交叉熵損失函數進行了改進,增大誤判買點時產生的損失懲罰,引導模型謹慎地給出買點判斷。
在常見的神經網絡中,LSTM是應用最為廣泛的一種[8]。在RNN(循環神經網絡)的基礎上,LSTM增加了輸入門、輸出門和遺忘門,使得神經網絡的權重能夠自我更新,能有效解決RNN在處理時間序列中距離較遠的節點時,易發生的梯度膨脹和梯度消失問題[9]。
本文基于小波變換和隨機森林算法對特征進行優化,使用LSTM對來自不同市場的重要指數與個股進行趨勢預測,證明了本文所提方法的有效性。
二、實驗準備
(一)原始數據集的選擇
為了更加全面、客觀地驗證模型的預測能力,本文選擇了不同市場的重要指數與個股作為原始數據集,它們分別是滬深300指數、恒生指數、標普500指數、貴州茅臺、騰訊控股、微軟。
每個原始數據集均包含五個非常重要的當日交易數據,它們分別是:開盤價、最高價、最低價、收盤價、交易量,每個數據集約包含600天的交易數據。
(二)預測目標與評價指標的確定
本文將預測目標定為對買點的判斷,買點標簽 的定義如下:
其中open0表示當日開盤價, close6表示6天后的收盤價,總持股周期為7天。如果6天后的收盤價高于當日開盤價,則認為當日是一個買點,標簽為1(正例),反之標簽則為0(負例)。簡而言之,模型的預測目標是完成一個分類任務,即判斷當日是否是一個買點。
根據標簽真實值與模型預測值的不同,可將所有樣本分為4個類別:
1.真正類(TruePositive,TP),樣本實際為正例,并且被正確地預測為正例。
2.假正類(FalsePositive,FP),樣本實際為負例,但被錯誤地預測為正例。
3.假負類(FalseNegative,FN),樣本實際為正例,但被錯誤地預測為負例。
4.真負類(TruePositive,TN),樣本實際為負例,并且被正確地預測為負例。
為了綜合評估模型的預測能力,本文選擇準確率(Accuracy)、精確率(Precision)、召回率(Recall)、 分數作為模型的評價指標。以上評價指標計算公式如下:
由于損失厭惡心理的存在,在借助模型進行買點預測時,相對于那些由于模型沒有預測到真實買點而產生的收益減少,投資者們可能會更在意由于模型預測錯誤導致的損失。因此本文認為對于股票走勢預測而言,精確率會比召回率更加重要,因此將 的取值確定為0.5,更加重視模型在精確率方面的表現。
(三)技術指標的選取與歸一化
為了讓模型具有更佳的預測能力,本文基于其他研究的發現[10],選擇MACD、RSI等合計26個技術指標作為數據集的特征部分,部分指標及其描述如表1所示。
為了避免某一特征對最終預測結果產生較大的影響,在將特征輸入神經網絡之前,對每個特征都分別進行了歸一化處理,將特征的取值限定在0到1之間。公式如下:
式中xmax與xmin分別是該特征的最大值與最小值,x*為歸一化處理完畢后的值。
(四)LSTM框架與損失函數
本文選擇使用包含兩層輸入層的LSTM網絡進行預測,為了避免出現過擬合現象、提升預測模型的泛化能力,每一個輸入層都進行了dropout處理,丟棄掉本層30%的神經元。本文使用的LSTM神經網絡框架如圖1。
經典的二元交叉熵(Binary Cross Entropy,BCE)中,對于每一個獨立的買點標簽 ,預測值y與yi之間的偏差可被表示為:
在股票預測問題上,本文希望模型能在精確率上有更為突出的表現。因此本文對損失函數進行了適應性改進:當真實買點標簽y為0時,如果模型反而給出了較為正面的預測,則有針對性地加重這部分的損失懲罰。改進后的損失函數如下:
三、實驗及其結果分析
(一)基于原始特征的實驗結果
本文首先選擇26個技術指標作為輸入特征,完成基礎實驗,便于與后續實驗進行參照對比,以經典的二元交叉熵作為LSTM神經網絡的損失函數。
表2顯示了使用26個技術指標作為輸入特征的神經網絡的預測性能。從準確率來看,神經網絡已經擁有了一定的預測能力,平均準確率達到了52.48%。
(二)經特征優化后的實驗結果
本文首先使用Coif4小波基函數對收盤價數據進行去噪處理,然后使用去噪后的交易數據重新計算26個技術指標的值,最后使用隨機森林算法對去噪后的技術指標進行篩選。本文使用的隨機森林算法的重要參數如表3所示:
圖2列出了經隨進森林算法選出的重要性位于前15的技術指標。其中,重要性高于0.05的技術指標使用深棕色標出,高于平均值0.038的指標使用深藍色標出,其余指標使用深綠色標出。如圖3所示,對于每個數據集而言技術指標的重要性雖不完全相同,但PC、ADX、OBV等指標在各個數據集中的重要性都位于前列。
對于每一個數據集,僅將篩選出的15個優質技術指標作為輸入特征,沿用二(二)節的買點標簽與神經網絡模型重新評估模型的預測性能,特征優化后模型的預測性能如表4所示。
對比表2與表4,可以發現經特征優化后,模型的預測性能獲得了全面的提升。但是,模型“高召回,低精確”的現象仍然存在。
(三)改進損失函數實驗結果
將BCE損失函數更換為二(四)節中改進后的損失函數后,繼續使用特征優化后的15個技術指標作為輸入特征,沿用二(二)節的買點標簽與神經網絡模型對股票走勢進行預測,損失函數改進后模型的預測性能如表5所示。
對比表4與表5可發現,使用改進的損失函數后,六大數據集在準確率方面并沒有非常明顯的變化,但在精確率方面,六大數據集平均獲得了超5個百分點的提升,并且已經全面超越召回率。 分數的顯著提升說明模型的綜合能力獲得了顯著的提高。
四、結語
本文針對股票趨勢預測模型在評價指標上缺少側重、泛化能力不強等問題提出了改進方案。選擇滬深300等重要指數與個股作為數據集,使用小波變換和隨機森林算法對原始特征進行優化。經特征優化后,LSTM模型在僅輸入15個特征的情況下,仍然獲得較高的預測精度。另外,本文還基于損失厭惡心理對BCE損失函數進行了適應性改進,加重了模型誤判買點時的損失懲罰,有針對性地提高LSTM預測模型的精確率,使模型預測得到的買點有更高的概率是真實買點,投資者蒙受損失的概率顯著降低。
參考文獻
[1]李銀霞.基于改進多因子模型的股票超額收益的系統性分析及預測[D].南京:東南大學,2020.
[2]徐程成.股票價格預測方法綜述[J].中國市場,2020(9):42-43.
[3]鄧烜堃,萬良,黃娜娜.基于DAE-BP神經網絡的股票預測研究[J].計算機工程與應用,2019,55(3):126-132.
[4]伯毅.基于XGBoost模型的短期股票預測[D].哈爾濱:哈爾濱工業大學,2018.
[5]章睿.基于機器學習的股票特征K線圖預測研究[D].大連:大連理工大學,2021.
[6]邱一豪,孟志青.時態神經網絡模型及其在股票分類預測上應用[J].計算機工程與應用,2019,55(15):263-270.
[7]湯軼璇.基于短視性損失厭惡視角的A股市場股權溢價問題實證研究[D].北京:北京交通大學,2017.
[8]方紅,韓星煜,徐濤.改進型基于LSTM的股票預測方法[J].安徽大學學報(自然科學版),2019,43(6):36-42.
[9]邱錫鵬.神經網絡與深度學習[J].中文信息學報,2020,34(7):4.
[10]Ji G,Yu J,Hu K,et al.An adaptive feature selection schema using improved technical indicators for pre-dicting stock price movements[J].Expert Systems with Applications,2022,200:116941.
基金項目:國家自然科學基金面上項目(課題編號:31771680)
作者單位:王浩文、郭亞,江南大學物聯網工程學院;劉娟,無錫學院數字與經濟管理學院