国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進的NSGA-III-XGBoost算法在股票預測中的應用

2023-09-25 09:03:02泳,李環(huán)
計算機工程與應用 2023年18期
關鍵詞:特征選擇準確度種群

何 泳,李 環(huán)

東莞理工學院計算機科學與技術學院,廣東東莞523000

股票預測是計算機科學與金融交叉的經典問題。新聞、政策、市場情緒等許多不確定因素都可能導致股票價格在短期內發(fā)生劇烈變化。股票的時間價格序列往往被認為是動態(tài)非參數的、混亂的、嘈雜的非線性序列[1],因此,準確的預測股票市場價格的趨勢,以最大化資本收益和最小化損失,給金融研究人員和投資者帶來挑戰(zhàn)。

傳統的股票預測的方法可以分為三類:基本面分析、技術分析、傳統統計分析,其中基本面分析和技術分析是對個股最常用兩種的方法,用于分析和預測股票市場行為[2]。傳統統計分析方法預測時涉及統計方法,例如自回歸移動平均(ARMA)和指數平滑(ES)等[3],將股票價格的變動視為時間序列的函數,并作為回歸問題解決。然而由于股票價格變動的存在眾多內部和外部因素且難以量化,處理海量復雜股票數據所需的工作量巨大,因此傳統的非人工智能方法在股價趨勢預測中往往不盡如人意[4]。近年來人工智能技術的不斷發(fā)展和股票數據易獲得的特點,越來越多機器學習和深度學習的模型用于預測股票[1]。由于機器學習模型具有更強大的大數據處理能力和學習能力,能夠處理輸入特征和預測目標之間的非線性關系,因此其預測能力通常比傳統的基本面分析的方式的更強[5]。通過準確的股票價格方向變動預測,投資者可以把握買賣時機,從而戰(zhàn)勝市場并獲取利潤[6]。

目前的研究中,基本的股票數據處理流程為:數據預處理、特征工程、模型訓練、優(yōu)化、預測和評估。然而,大部分的工作都集中在預測算法而忽視了特征工程。即使深度學習可以做到全自動的特征工程,也需要在輸入模型之前進行數據預處理,好的特征工程可以使預測模型達到更好性能的同時減少運行資源[7]。因此,本文首先在特征工程方面進行數據降噪和生成技術指標,而后使用結合了多目標優(yōu)化(NSGA-III)算法和機器學習算法(XGBoost)的股票預測模型進行特征選擇并對股票的變動方向進行預測。

本文股票預測模型的優(yōu)點如下:(1)高效。本文提出的算法與深度學習中長短時記憶神經網絡(long short term memory neural network,LSTM)神經網絡相比,在相同的優(yōu)化次數下,準確度比后者高的同時,所需運行時間不到后者的1%。(2)可解釋性。深度學習模型普遍存在“黑盒”問題[8],無法對特征的重要性進行評估,而本文提出算法可以得出重要性最高的特征,以供后續(xù)研究。(3)高準確度和穩(wěn)定性,本文算法與其他基準研究相比,體現了其預測能力和應對不同市場數據的預測穩(wěn)定性。

1 相關工作

近幾年,深度學習在圖像識別、語音識別和自然語言處理等領域非常熱門,其中也包括時間序列分析。在時間序列分析中,LSTM由于其特殊的門結構,可以記憶過去一段長度的輸入并解決了循環(huán)神經網絡(recurrent neural network,RNN)中的梯度消失問題,成為研究的熱門。其中文獻[9]使用遺傳算法將均方根誤差(RMSE)作為適應度函數,優(yōu)化了神經網絡。文獻[10]采用數據增強的方式,并用一個預測LSTM 和一個防止過擬合LSTM 來提高預測性能。文獻[11]提出一個復合模型,LSTM結合了經驗小波分解和異常值魯棒極端學習機。除了深度學習多種機器學習模型也用來開發(fā)股票預測系統。例如文獻[12]使用基于樹的集成學習方式,文獻[6]使用遺傳算法優(yōu)化的XGBoost,文獻[13]采用非線性高斯核函數的權重支持向量機(support vector machine,SVM)進行特征工程,并用權重K鄰近算法預測價格。

特征工程是AI 技術的重要組成,許多研究在這一部分改進來提高模型的預測性能。文獻[14]、文獻[9]和文獻[12]在原始的歷史數據上生成技術指標來預測價格。而文獻[12]在拓展特征后,采用特征提取的方式獲得新的指標。然而,過多的特征輸入不一定能提高模型的性能,反而可能導致“維度詛咒”的問題,造成不必要的計算消耗和模型預測能力的下降[15]。

基于以上研究的啟發(fā),本文提出的算法在拓展特征后,采用特征選擇的方式,去除不相關的和冗余的特征,減少不必要計算開銷的同時提高模型的預測性能。進化算法通過啟發(fā)式搜索策略獲得最佳特征子集,因為其高效的全局搜索方式被廣泛應用于特征選擇問題。目前大多數研究采用單目標的方式優(yōu)化分類精度或分類誤差來解決特征選擇的問題,而該問題可以作為最大化預測性能和最小化特征數量的多目標問題。在實際應用中,如果能選擇較小的解集并保持較高的預測性能,那么就能減少計算量的同時提高預測性能。因此,本文的預測系統可以看成多目標特征選擇問題,用多目標算法解決。

2 方法與模型

為了解決高維數據的處理問題,本文通過特征選擇方式移除與目標相關性低的特征和冗余的特征,從而提高計算效率和模型性能。本文提出INSGA-III-XGBoost算法使用多目標算法進行同步特征選擇和參數優(yōu)化,選擇的特征子集和參數輸入XGBoost 模型進行訓練預測。在本文的研究中將選擇的特征數和分類的準確度作為兩個目標。其中,選擇特征數量,即解大小的目標函數表示為:

分類準確度的計算公式為:

式中,Z為解碼方案,D為維度(特征的個數),每個維度的可能值為0 和1,式(2)中,NCar為正確預測的樣本數,NAll是所有樣本的數量。

如圖1 所示,本文采用多染色體混合編碼的方式,第一條染色體編碼了所有特征,染色體的長度等于數據的特征數量,其中0代表未選擇該特征,1代表選擇該特征將被保留。第二條染色體編碼了XGBoost 的關鍵參數。圖3 中的E為XGBoost 樹的數量,F為XGBoost最大特征數,L為XGBoost學習率。

圖1 個體表示Fig.1 Presentation of individual

卡方檢驗方法(Chi2)可以對特征進行相關性分析,因此在NSGA-III 算法的初始化階段,可以用Chi2 先評估特征,在所有的特征變量里提取出與目標更相關的特征,并減少相關度低的冗余特征,用于初始化種群以提高性能。公式如下:

其中,實際值指變量x的實際頻數,理論值指假設變量x與目標變量y之間獨立時,x的理論頻數。先通過Chi2 評估特征,獲得每個特征變量對目標變量的卡方值,然后根據大小排序,選擇排名靠前的特征,即是與目標變量y更相關的特征[16]。通常在Chi2 算法初始化過程中,需要保留大部分的評分較高的特征和不相關的特征的小部分以保持初始化的多樣性(考慮特征之間的相互作用)。因此,通過實驗對比,本文選擇80%最有用的特征。而如何從選擇的特征中得到最合適的特征組合,并且確定合適的特征數量又是需要考慮的問題。在本文中,采用混合初始化[17]的方法解決該問題:首先基于卡方值排序,從初始特征中選擇得分最高的80%的特征保存在WR中,對于所有個體中的80%的個體,若個體選擇的特征在WR且初始矩陣XG中選擇了該特征(對應的值為1),則保留該特征。對于所有個體中的20%的個體,若個體選擇的特征不在WR且初始矩陣XG選擇了該特征,則保留該特征。

算法1 混合初始化

種群大小ps,特征數D,初始矩陣XG,前80%特征矩陣WR,記錄矩陣PF

XGBoost 創(chuàng)建后每個屬性的重要性得分可以直接獲得,該得分衡量特征在提升樹構建時的重要程度。在單個決策樹,每棵樹根據特征對性能度量改進的量計算屬性重要性。在提升樹中,單個特征對性能改進的程度越大,權值越大,并將被更多提升樹所選擇,重要性越高。最后根據屬性在所有提升樹中的重要性加權求和并平均,得到最終的重要性評分。由于其與Chi2 的評估方法不同,因此會得到不同的評估結果?;贑hi2和XGBoost的集成學習種群初始化過程如下:第一部分種群使用Chi2 評估特征的卡方值,根據其大小將特征從大到小排列,然后由算法1得到初始種群a,再將種群a作為XGBoost的輸入,使用TPE(tree-structured parzen estimator)算法[18]優(yōu)化50 次參數,得到原種群和準確度合并的新種群A。第二部分種群根據XGBoost 評估特征的重要性得分,根據重要性得分將特征從大到小排列,再由算法1 得到初始種群b,再將種群b作為XGBoost的輸入,并使用TPE算法優(yōu)化50次參數,得到原種群和準確度合并的新種群B。最后將新種群A和B合并,根據準確度排序,選擇前50%的個體作為最終的初始化種群P。

NSGA-III在本文中用于解決多目標特征選擇問題。NSGA-III[19]源自NSGA-II[20],其框架類似于NSGA-II,但對選擇運算符進行了重大更改。在NSGA-III 算法中,有一個廣泛分布在整個歸一化超平面上的一組參考點,保持種群的多樣性。因此該算法很可能找到一個對應于這些參考點接近帕累托最優(yōu)解的支配解集。而本文提出的INSGA-III-XGBoost算法通過收集并更新每代中達到的最高準確度的解集信息,搜索近似最優(yōu)或最優(yōu)解。圖2展示了上述INSGA-III-XGBoost的過程。NSGA-III算法中某一代種群中所有個體將XGBoost 訓練評估的適應度,經過選擇、交叉、變異并不斷迭代,找到最優(yōu)解。XGBoost全稱極端梯度提升樹,它是在數據科學競賽中占據主導地位的非深度學習算法,由陳天奇博士[21]設計開發(fā),XGBoost 的優(yōu)勢在于其在所有場景中的可擴展性和極高的準確性。XGBoost 的可擴展性是由于算法采用加權分位數草圖程序來處理具有并行和分布式計算的近似樹學習中的實例權重。通過將可擴展性程序與梯度提升算法相結合,XGBoost可以通過利用每一個可用的硬件資源來最大化預測性能和處理速度。模型設計只關注性能和效率,能夠并行地將多個弱分類器(決策樹)通過結果加權的方式合成強分類器(提升樹),是工程領域最好用的算法之一。

圖2 INSGA-III-XGBoost算法Fig.2 INSGA-III-XGBoost algorithm

然而即使XGBoost在機器學習算法中取得了成功和實際普及,但很少有研究將XGBoost方法用于股市預測[22]。

3 實驗結果與討論

本文所有的實驗均在如下配置的計算機中運行。硬件信息:英特爾i5-9500(3.00 GHz)處理器、8 GB RAM;軟件信息:Python 3.8.5、Visual Studio Code 1.67.1、Jupyter notebook 6.4.6。因為市場狀態(tài)可能潛在地影響股票預測的效果,因此從不同發(fā)展程度的市場選擇指數有助于解釋算法的魯棒性。本文選擇的3 只市場指數,道瓊斯指數代表最發(fā)達市場指數,恒生指數代表比較發(fā)達市場的指數,滬深300 代表發(fā)展中市場的指數,所有數據均通過英為財情網(https://cn.investing.com/)下載。數據樣本的時間段為2008年7月1日至2016年9月30日。

3.1 數據降噪

小波變化具有處理不平穩(wěn)的金融時間序列的能力,因此本文中使用了小波變化進行數據降噪。小波變換的關鍵特性是與傅里葉變換相比,它可以同時分析金融時間序列的頻率分量。因此它可以有效地處理高度不規(guī)則的金融時間序列[23]。本文使用三層sys8 小波將指數價格序列分解為時域和頻域。

3.2 生成技術指標

本文將建立兩個指標集。一個是在前人的研究中常用的指標,一個是本文生成的指標,兩個指標集進行對比。表1展示了前人研究中常用技術指標。

表1 技術指標集Table 1 Technical indicator set

表2 分類指標對比Table 2 Comparison of classification metrics

原始的歷史數據只包括開盤價、收盤價、最高價、最低價和成交量。本文通過生成技術指標的方式,將初始的5 維數據拓展為81 維數據。所有的技術指標均通過TA-Lib庫生成,可以分為六組,分別是重疊指標、動量指標、成交量指標、波動率指標、價格轉換指標和循環(huán)指標。

3.3 數據清洗和歸一化

將1 950個交易日的數據集劃分,其中訓練集85%、測試集15%。訓練集分為前82%訓練模型,后18%用來驗證模型。公式(4)將數據集映射到[0,1]之間進行歸一化。

3.4 性能衡量指標

實驗采用下列的常用分類指標衡量算法性能。

其中,TP為真正率,TN為真負率,FP為假正率,FN為假負率。

3.5 單目標、多目標、改進多目標對比

3.5.1 分類指標

分別采用基于單目標的方法GA 和基于多目標的方法NSGA-III,以及基于改進后的多目標的方法INSGAIII結合XGBoost對三個數據集進行實驗,比較不同特征選擇算法的性能。采用的參數設置如下:進化代數200代,種群大小20,個體染色體數2,交叉率1,變異率0.05。實驗數據如表3所示。表中可以看出在三個數據集中,INSGA-III-XGBoost算法在準確度、F1-score、AUC上均取到兩個最佳,兩個多目標算法選擇的特征數均比單目標算法選擇的特征較少。實驗結果表明,從分類指標評價的角度上看,單純把單目標特征選擇問題轉換為多目標特征選擇問題效果不一定會更好,而本文改進INSGAIII算法則提升了多目標算法的效果,總體表現優(yōu)于未改進的多目標算法和單目標算法。不同算法在進化過程中的準確度變化如圖3所示。

表3 運行時間對比Table 3 Comparison of processing time 單位:s

圖3 進化過程準確度變化Fig.3 Change of accuracy in process of evolution

3.5.2 運行時間對比

表3展示了三種算法的運行時間對比。表中可以看出,本文提出的INSGA-III-XGBoost算法所需的運行時間最少,相比NSGA-III-XGBoost 算法平均運行時間縮短了39.4%,而相比于采用單目標優(yōu)化的GA-XGBoost算法,平均時間縮短了83.28%。INSGA-III-XGBoost算法的運行時間方差最小,體現了INSGA-III-XGBoost算法在運行時間方面的穩(wěn)定性。其運行時間較小的原因是,算法在選擇了較少特征的同時選擇了合適的提升樹結構并動態(tài)調整了學習率,避免了大量不必要的計算開銷,從而提高了運行效率。

3.5.3 綜合比較

運行時間、選擇的特征數、準確度是三個最重要的指標。表4 展示了三個數據集的不同評價指標的平均值。算法運行時間平均為4.38 min,選擇特征數平均為20,平均準確度為88.74%。表中可以看出,本文提出的INSGA-III-XGBoost 算法綜合運行時間最短,選擇的特征數最少,且準確度最高,即性能表現最好。

表4 平均指標綜合比較Table 4 Comprehensive comparison of average metrics

3.6 不同特征子集對比

以恒生數據集為例,對四種不同的特征數據集進行對比,四種數據集分別輸入XGBoost 訓練預測,結果如表5 所示。其中,歷史特征數據集,僅包含原始的五個特征。其他特征數據集包含前人研究中常用的18個特征。所有特征數據集是本實驗拓展特征階段得到的81個特征,最優(yōu)子集數據集為本文提出算法INSGA-IIIXGBoost選擇出的最佳特征子集,相比于所有特征數據集,減少了70個特征。

表5 恒生數據集的特征子集對比Table 5 Comparison of feature subset in HangSeng dataset

INSGA-III-XGBoost 算法從80 個特征數據集中選擇11個最佳特征子集,對這11個特征進行分析,這是神經網絡的“黑盒”模型不具備的優(yōu)勢。圖4 展示了該最佳特征子集中的特征,按照重要性得分降序。BOLLM即布林線的中線是所有特征中重要性得分最高的,這說明其對預測股票的走勢作用最大。

圖4 最佳子集特征重要性得分Fig.4 Importance score of features of optimal subset

3.7 與基準模型對比

本文算法與經典的機器學習模型和不同層數的深度學習模型LSTM,和雙向LSTM(bidirectional long short term memory,BiLSTM)比較。以恒生數據集為例,表6看出本文的算法具有最高的準確度、F1-score 和AUC。三種不同層數的LSTM迭代100次的實驗結果如圖5所示,LSTM 神經網絡的訓練準確度提高得很快,但是驗證準確度先增后減,造成了過擬合的問題。

表6 基礎模型對比Table 6 Compare with base model

圖5 不同層數LSTM迭代過程準確度變化Fig.5 Change of accuracy in iterative process of LSTM with different layers

深度學習因為其強大的預測能力而應用于時間序列預測,但是模型的能力在很大程度上依賴于神經網絡結構和超參數的調整。本文實驗使用TPE 算法迭代優(yōu)化LSTM神經網絡結構200次。表7展示了INSGA-IIIXGBoost 算法和TPE-LSTM 算法的運行時間和準確度。表中可以看出,兩者的準確度相差較小,但是本文提出的算法的運行時間僅為TPE-LSTM的0.99%。

表7 TPE-LSTM對比Table 7 Compare with TPE-LSTM

3.8 與基準研究對比

表8為本文與近幾年來的基準研究對比,對比結果驗證了本文提出模型的優(yōu)越性。三大市場平均準確度比其他基準研究的準確度更高,從而驗證了本文提出模型適應不同市場數據的能力。

表8 與基準研究對比Table 8 Compare with benchmark studies

3.9 其他多目標算法對比

將本文的提出的INSGA-III算法與其他多目標優(yōu)化算法分別結合XGBoost比較性能,表9展示了恒生數據集實驗結果。INSGA-III-XGBoost 算法的準確度最高,達到90.48%。圖6為各多目標算法得到的帕累托前沿,縱軸為分類誤差,即1-準確度。相比于其他多目標算法,INSGA-III優(yōu)化效果最好,具有較小的解決方案大小和較低的分類錯誤率。

表9 多目標算法結合XGBoost對比Table 9 Compare with multi-objective algorithm combined with XGBoost

圖6 多目標算法帕累托前沿Fig.6 Pareto front of multi-objective algorithm

4 結論

本文提出的INSGA-III-XGBoost 算法通過將兩種過濾式特征選擇集成的方法初始化種群,并將股票預測問題作為多目標問題,以最大化準確度和最小化解的解決方案大小作為優(yōu)化方向,采用多染色體混合編碼的方式同步優(yōu)化了特征選擇和XGBoost參數,對比其他基準研究具有最快的處理速度,解方案最小,預測準確度最高。在特征工程方面首先生成81 個特征,將原始歷史數據5 個特征的預測準確度從77.62%提升到81.43%,而特征選擇再選擇其中11個特征作為最優(yōu)子集預測準確度提升到90.48%,克服了“維度詛咒”的問題。在所有基礎的機器學習模型和深度學習模型中本算法的預測性能最好。對比原始多目標算法和單目標算法運行時間分別縮短了39.4%和83.28%,運行效率高,適合短期交易系統的預測需求。對比默認參數的深度學習算法,預測性能平均高3%,而對比經過200代參數優(yōu)化的TPE-LSTM雖然準確度只高1%,但是運行時間僅為它的0.99%,并且本文模型具有可解釋性,實驗結果給出了預測恒生指數走向的前11個關鍵特征及其重要性得分。

猜你喜歡
特征選擇準確度種群
山西省發(fā)現刺五加種群分布
中華蜂種群急劇萎縮的生態(tài)人類學探討
紅土地(2018年7期)2018-09-26 03:07:38
幕墻用掛件安裝準確度控制技術
建筑科技(2018年6期)2018-08-30 03:40:54
Kmeans 應用與特征選擇
電子制作(2017年23期)2017-02-02 07:17:06
動態(tài)汽車衡準確度等級的現實意義
聯合互信息水下目標特征選擇算法
基于特征選擇和RRVPMCD的滾動軸承故障診斷方法
高爐重量布料準確度的提高
天津冶金(2014年4期)2014-02-28 16:52:58
基于二元搭配詞的微博情感特征選擇
計算機工程(2014年6期)2014-02-28 01:26:36
對電子天平的誤差及保證其稱量準確度的探討
機電信息(2014年35期)2014-02-27 15:54:30
浦城县| 博客| 桦川县| 临高县| 确山县| 海盐县| 神池县| 湛江市| 莱西市| 东乡族自治县| 灵石县| 焦作市| 迭部县| 大化| 合作市| 阿克| 东光县| 界首市| 凤台县| 江陵县| 金门县| 浮梁县| 崇阳县| 集安市| 睢宁县| 新平| 银川市| 青州市| 维西| 永嘉县| 林芝县| 绥棱县| 巴南区| 明光市| 丹寨县| 湖州市| 芦山县| 佛坪县| 沙田区| 双鸭山市| 孝感市|