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