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

?

隨機森林模型參數(shù)尋優(yōu)算法比較分析

2024-02-22 00:00:00王立柱吳品康王秋萍
關鍵詞:隨機森林股票

摘要:隨機森林模型有多種參數(shù)尋優(yōu)算法,Python第三方庫scikit-learn給出了其中2種算法的具體實現(xiàn),即網(wǎng)格搜索和隨機搜索。使用股票歷史交易數(shù)據(jù)集,根據(jù)當天的交易數(shù)據(jù)和技術指標預測未來一天的股票漲跌情況。首先,補充技術指標和分類標簽,對數(shù)據(jù)進行預處理;其次,將收盤價及10個技術指標視為特征變量,進行相關性分析,并在篩選之后對剩余的特征變量計算方差膨脹系數(shù),最終保留5個特征變量;最后,對模型進行測試,使用網(wǎng)格搜索和隨機搜索對參數(shù)進行優(yōu)化,比較二者的運行時長和在測試集上的準確率。結果發(fā)現(xiàn),隨機搜索得到的一組最優(yōu)參數(shù)在測試集上的準確率可達到61.9%,好于網(wǎng)格搜索的結果。實驗結果表明,在數(shù)據(jù)量大、參數(shù)范圍廣的情況下,隨機搜索算法比網(wǎng)格搜索算法具有更好的性能。

關鍵詞:隨機森林; Python; 網(wǎng)格搜索; 隨機搜索; 股票

中圖分類號:O224文獻標志碼:A

doi:10.3969/j.issn.1673-5862.2024.05.006

Comparative analysis of parameter optimization algorithms in random forest models

WANG Lizhu1, WU Pinkang1, WANG Qiuping2

(1.College of Mathematics and Systems Science, Shenyang Normal University, Shenyang 110034, China; 2.College of International Education, Shenyang Normal University, Shenyang 110034, China)

Abstract:

The random forest model has a variety of parameter optimization algorithms, and the Python third-party library scikit-learn gives the specific implementation of two algorithms, grid search and random search. Use a historical stock trading data set to predict the rise and fall of the next day based on the trading data and technical indicators of the day. Firstly, technical indicators and classification labels are supplemented to preprocess the data. The closing price and 10 technical indicators are regarded as characteristic variables, and the correlation analysis is carried out. After filtering, the variance expansion coefficient is calculated for the remaining feature variables, and finally five feature variables are retained. The model was subsequently tested. Grid search and random search were used to optimize the parameters, and the running time and accuracy on the test set of the two were compared. The accuracy of a set of optimal parameters obtained by random search on the test set can reach 61.9%, which is better than the results of grid search. The experimental results show that the random search algorithm has better performance than the grid search algorithm in the case of large amount of data and a wide range of parameters.

Key words:random forest; Python; grid search; random search; stock

算法模型可用于實際問題的研究和分析,例如投資策略[1-2]、疫情預測[3]、氣溫預測[4-5]、個人信用評估[6]等。隨機森林模型是一種算法模型,其應用廣泛,可解決分類問題,如文本分類、垃圾郵件識別、期刊評價[7]等問題,也可解決回歸問題,如房價預測、銷售量預測等問題。

股票的漲跌情況預測是一種分類問題,因而可以采用隨機森林模型來解決。國內(nèi)有多名學者在這方面進行了研究。2017年,林娜娜等[8]首先運用相關性分析對初始指標體系進行篩選,然后采用手動搜索的方式對隨機森林的參數(shù)進行優(yōu)化。2018年,方昕等[9]用離散二進制粒子群算法對技術指標進行選擇,篩選出最優(yōu)特征,并采用手動搜索的方式對隨機森林的參數(shù)進行了優(yōu)化。2020年,鄧晶和李路[10]選取5個純技術指標作為股票預測特征,采用網(wǎng)格搜索方法對隨機森林進行了參數(shù)尋優(yōu)。2021年,王惠瑩和郝泳濤[11]以股票的5個技術指標和下周股價走勢作為隨機森林預測模型的特征,通過網(wǎng)格搜索優(yōu)化隨機森林模型的參數(shù)。

國外在這方面也有一些相關研究。2021年,Sadorsky[12]使用隨機森林方法預測清潔能源股票價格,采用10倍交叉驗證和10次重復進行訓練控制來優(yōu)化隨機森林模型參數(shù),發(fā)現(xiàn)隨機森林和決策樹裝袋模型比邏輯回歸模型具有更高的預測準確性。2022年,Ghosh等[13]比較了隨機森林和LSTM網(wǎng)絡在預測Samp;P 500成分股日內(nèi)交易價格方向變動的效果,引入多特征設置提高了預測準確性,并展示了不同模型和特征設置在不同時間段的表現(xiàn)及相關交易策略,其中隨機森林模型參數(shù)尋優(yōu)使用的是基于經(jīng)驗和實驗分析的方法。2024年,Meher等[14]使用隨機森林模型和高頻數(shù)據(jù)預測印度3家金融科技公司的股價,使用歷史交易數(shù)據(jù)進行實驗,通過交叉驗證調整超參數(shù)以優(yōu)化模型性能,發(fā)現(xiàn)該模型預測效果良好。

為了使模型能夠取得良好的效果,往往需要對模型的參數(shù)進行優(yōu)化。模型參數(shù)尋優(yōu)的算法有很多,常見的是上面提到的手動搜索、網(wǎng)格搜索,除此之外,還有隨機搜索等算法。2017年,溫博文等[15]提出了一種基于改進的網(wǎng)格搜索的隨機森林參數(shù)優(yōu)化算法。2022年,蔡明等[16]提出了一種基于自適應遺傳算法的隨機森林模型參數(shù)優(yōu)化方法。

上述關于股票漲跌趨勢的研究在對隨機森林模型進行參數(shù)優(yōu)化時,使用了手動搜索或網(wǎng)格搜索,均未使用隨機搜索算法。網(wǎng)格搜索算法的缺點是速度慢、耗時長、效率低,當數(shù)據(jù)量或者參數(shù)范圍大到一定程度時,其缺點尤為明顯。

為了探究隨機搜索算法對于隨機森林模型參數(shù)優(yōu)化問題能否取得較好的效果,分析網(wǎng)格搜索和隨機搜索2種算法的性能差異,比較二者在運行時長和測試集上的準確率,本文使用股票歷史交易數(shù)據(jù)及Python和第三方庫scikit-learn進行實驗。首先,補充技術指標和分類標簽,對數(shù)據(jù)進行預處理;其次,將收盤價及10個技術指標視為特征變量,進行相關性分析,并在篩選之后對剩余的特征變量計算方差膨脹系數(shù),最終保留5個特征變量;再次,劃分訓練集、測試集,對模型進行測試;最后,對網(wǎng)格搜索、隨機搜索這2種隨機森林模型參數(shù)尋優(yōu)算法在運行時長和測試集上的準確率2個方面進行了比較。實驗結果表明隨機搜索算法取得了較好的效果。

1基礎知識

1.1決策樹模型

決策樹模型是隨機森林模型的基礎,這也是該模型名稱的由來。決策樹模型通過連續(xù)的邏輯判斷得出最后結論,其難點在于如何建立這樣一棵“樹”。具體而言,有2個主要的難點:1)根節(jié)點應該選擇哪一個特征;2)根節(jié)點特征選定之后的分類條件應該怎樣確定。這2個問題的解決辦法是統(tǒng)一的,解決問題依據(jù)的是計算得出的某種指標,例如信息熵、基尼系數(shù)。本文采用基尼系數(shù)這一指標。

1.2基尼系數(shù)

基尼系數(shù)可用于計算某種分類結果的混亂程度[17]。基尼系數(shù)越高,分類結果的混亂程度就越高,建立決策樹模型的目的就是降低分類結果的混亂程度,從而得到合適的數(shù)據(jù)分類效果。基尼系數(shù)的計算公式如下:

gini(T)=1-∑p2i

其中:pi為類別i在樣本T中出現(xiàn)的概率,即類別為i的樣本占總樣本個數(shù)的比率;∑為求和符號,表示對所有的p2i進行求和。

當引入某個用于分類的特征及條件時,分類后的基尼系數(shù)計算公式如下:

gini(T)=S1S1+S2gini(T1)+S2S1+S2gini(T2)

其中:S1和S2為劃分后的兩類各自的樣本量;gini(T1)和gini(T2)為兩類各自的基尼系數(shù)。

基尼系數(shù)越低表示分類結果的混亂程度越低,區(qū)分度越高,越適用于分類預測。實際應用中的數(shù)據(jù)量通常很大,不同情況下的基尼系數(shù)值的計算是人力難以完成的,需要利用機器不停地計算來找到基尼系數(shù)最低的特征及其分類條件,即最佳節(jié)點。選擇最佳節(jié)點作為根節(jié)點,根節(jié)點下面的子節(jié)點也同樣的方法來選擇。決策樹模型的2個核心難點問題由此得到解決。

1.3隨機森林模型

隨機森林模型是一個非常典型的集成學習模型。所謂集成學習模型,就是將多個模型組合在一起,產(chǎn)生一個更強大的模型。Bagging算法和Boosting算法是集成學習模型的2種常見算法。Bagging算法的原理類似投票,每個弱學習器都有一票,最終根據(jù)所有弱學習器的投票,按照少數(shù)服從多數(shù)的原則產(chǎn)生最終的分類結果。隨機森林模型是一種典型的Bagging模型,其弱學習器為決策樹模型。

如圖1所示,隨機森林模型會在原始數(shù)據(jù)集中有放回地隨機抽樣,原始數(shù)據(jù)條數(shù)與有放回地隨機抽取次數(shù)是相同的,這樣可能出現(xiàn)某一條數(shù)據(jù)多次被抽中或者一次也未被抽中的情況,即可構成n個不同的樣本數(shù)據(jù)集。然后根據(jù)這些數(shù)據(jù)集搭建n個不同的決策樹模型,最后根據(jù)這些決策樹模型的投票情況來獲取最終結果。

為了保證模型的泛化能力,或者說通用能力,隨機森林模型在建立每棵樹時,往往會遵循“數(shù)據(jù)隨機”和“特征隨機”這2個基本原則。“數(shù)據(jù)隨機”的含義是從所有數(shù)據(jù)當中有放回地隨機抽取數(shù)據(jù)作為其中一個決策樹模型的訓練數(shù)據(jù)。“特征隨機”的含義是如果每個樣本的特征維度為M,指定一個常數(shù)klt;M,隨機地從M個特征中選取k個特征。在使用Python第三方庫scikit-learn構造隨機森林模型時,默認選取特征的個數(shù)k為M。

與單獨的決策樹模型相比,隨機森林模型由于集成了多個決策樹,其預測結果會更準確,且不容易造成過擬合現(xiàn)象,泛化能力更強。

1.4相關定義及計算公式

1)close_open:

close_open=(收盤價—開盤價)/開盤價

2)high_low:

high_low=(最高價—最低價)/最低價

3)n日均線價格MA(n):

MA(n)=1n∑ti=t-n+1Pi

其中∑ti=t-n+1Pi表示對最近n日收盤價求和。5日均線價格記為MA5,10日均線價格記為MA10。

4)相對強弱指標RSI的計算公式:

RSI=N日平均上漲價格N日平均上漲價格+N日平均下跌價格×100

一般N的取值為6,12或24。

5)動量指標MOM的計算公式:

MOM=C-Cn

其中:C表示當前的收盤價;Cn表示n天前的收盤價。

6)指數(shù)移動平均值EMA的計算公式:

EMAtoday=αpricetoday+(1-α)EMAyesterday

其中:EMAtoday為當天的EMA值;pricetoday為當天的收盤價;EMAyesterday為昨天的EMA值;α為平滑指數(shù),一般取值為2N+1,N表示天數(shù)。第一個EMA值通常為初始N天收盤價的均值。當N為12時,對應的EMA稱為EMA12。

7) 異同移動平均線MACD的計算公式:

MACD=2×(DIF-DEA)

DIF=EMA12-EMA26

DEA值是DIF值的9日加權移動均線值,計算方法類似EMA9,區(qū)別在于計算EMA9用的是收盤價,而計算DEA值用的是DIF值。

2網(wǎng)格搜索與隨機搜索算法的比較

隨機森林模型有多種參數(shù)尋優(yōu)算法,Python第三方庫scikit-learn給出了2種算法的具體實現(xiàn),即網(wǎng)格搜索和隨機搜索。scikit-learn官方文檔提供了二者的參數(shù)(表1和表2)。

網(wǎng)格搜索是指從指定的參數(shù)范圍中詳盡地生成參數(shù)組合候選項,不遺漏任何一種可能的參數(shù)組合,然后在所有候選的參數(shù)組合中,通過循環(huán)遍歷,嘗試每一種可能性,表現(xiàn)最好的一組參數(shù)就是最終的結果,即最優(yōu)參數(shù)。

隨機搜索是指從指定的參數(shù)范圍中隨機抽取參數(shù),生成指定數(shù)量的參數(shù)組合候選項。在這些候選的參數(shù)組合中,通過循環(huán)遍歷,嘗試每一種可能性,表現(xiàn)最好的一組參數(shù)就是最終的結果,即最優(yōu)參數(shù)。

通過對比可以發(fā)現(xiàn),隨機搜索比網(wǎng)格搜索多2個參數(shù),即n_iter和random_state。參數(shù)n_iter設置生成指定數(shù)量的參數(shù)組合候選項,參數(shù)random_state為隨機狀態(tài),設置具體值后,每次隨機搜索的結果保持不變。

2012年,加拿大蒙特利爾大學的2位學者Bergstra和Bengio[18]研究發(fā)現(xiàn),與純網(wǎng)格搜索配置的神經(jīng)網(wǎng)絡相比,在同一域上的隨機搜索能夠在很少的計算時間內(nèi)找到同樣好或更好的模型。

3實驗及結果分析

本實驗使用的數(shù)據(jù)集是芯源微(688037)從2019年12月16日至2023年4月10日共804個交易日的數(shù)據(jù),通過軟件“同花順遠航版8.6.1.2”得到。實驗使用的程序設計語言是Python 3.11,調用的第三方庫內(nèi)scikit-learn 1.2.1。實驗根據(jù)當天的交易數(shù)據(jù)和技術指標對未來一天的漲跌情況進行分類,通過運行時長和測試集上的分類準確率反映2種參數(shù)尋優(yōu)算法的性能差異。

補充技術指標和分類標簽之后產(chǎn)生大量空值,將含有空值的數(shù)據(jù)剔除,剩余770條數(shù)據(jù)。按照日期順序,把2020年2月10日至2022年12月30日數(shù)據(jù)作為訓練集,2023年1月3日至2023年4月7日數(shù)據(jù)作為測試集。訓練集用來訓練模型和參數(shù)優(yōu)化,測試集用來對模型進行測試。

將收盤價和10個技術指標視為特征變量,計算它們的Pearson相關系數(shù)(圖2),進行相關性分析。若2個特征變量相關系數(shù)很大,表明二者相關性非常強,將導致多重共線性,因而需要刪去其中之一。經(jīng)過篩選,剔除收盤價、MA10、EMA12、DEA。

然后對剩余的特征變量計算方差膨脹系數(shù),系數(shù)值越大表示多重共線性越嚴重,當系數(shù)值小于10時,認為不存在多重共線性。當系數(shù)值在10至100之間時,認為存在較強的多重共線性。因此,剔除MA5和RSI。最終剩下close_open,high_low,MOM,DIF,DIF-DEA這5個特征變量。

Python第三方庫scikit-learn給出了隨機森林分類器random forest classifier的具體實現(xiàn),提供了默認參數(shù)(表3),即n_estimators=100,min_samples_leaf=1,max_depth=None。max_depth=None含義是擴展節(jié)點直到所有葉子都是純的,或者直到所有葉子包含的樣本少于min_samples_split,而min_samples_split默認為2。在這組默認參數(shù)的情況下,測試集上準確率得分為0.587301。

使用網(wǎng)格搜索,設置交叉驗證參數(shù)cv=3,參數(shù)n_estimators記為n_e,參數(shù)max_depth記為m_d,參數(shù)min_samples_leaf記為m_s_l,結果見表4。

由此可見,網(wǎng)格搜索耗時較長,只將其中一個參數(shù)范圍擴大為原來的2倍,耗時就變?yōu)樵瓉淼?倍,隨著數(shù)據(jù)量和參數(shù)范圍的擴大,耗時將會持續(xù)增加,而尋找到的最優(yōu)參數(shù)在測試集上的準確率未必會有明顯提升,甚至不如默認參數(shù)在測試集上的準確率。

使用隨機搜索,設置交叉驗證參數(shù)cv=3,對于參數(shù)范圍5lt; n_estimatorslt;20,1lt; max_depthlt;10,1lt; min_samples_leaflt;30,結果見表5。

使用隨機搜索,設置交叉驗證參數(shù)cv=3,對于參數(shù)范圍5lt; n_estimatorslt;40,1lt; max_depthlt;10,1lt; min_samples_leaflt;30,結果見表6。

由此可見,隨機搜索速度快,耗時短。將其中一個參數(shù)范圍擴大為原來的2倍,耗時雖有增加,但仍不超過1s。隨著數(shù)據(jù)量和參數(shù)范圍的擴大,網(wǎng)格搜索耗時將超過1h,而隨機搜索仍然可在2s左右的時間內(nèi)完成。相比于網(wǎng)格搜索的耗時,隨機搜索耗時可以忽略不計。

在測試集的準確率上,隨機搜索也表現(xiàn)出較好的效果。對于不同的參數(shù)范圍,分別進行5次隨機搜索得到5組最優(yōu)參數(shù),能夠得到一組參數(shù)在測試集上的準確率得分較為理想,準確率最高可達62%。

4結語

不同的參數(shù)尋優(yōu)算法有不同的優(yōu)點和缺點。網(wǎng)格搜索算法的缺點是速度慢、耗時長、效率低,當數(shù)據(jù)量或者參數(shù)范圍大到一定程度時,其缺點尤為明顯。隨機搜索算法與其相反,具有速度快、耗時短、效率高的優(yōu)點,當數(shù)據(jù)量或者參數(shù)范圍大到一定程度時,其優(yōu)點尤為明顯,可以比網(wǎng)格搜索算法更好地完成參數(shù)尋優(yōu)任務,甚至只能用隨機搜索算法來完成。

網(wǎng)格搜索和隨機搜索的區(qū)別在于,網(wǎng)格搜索遍歷每一種參數(shù)組合,耗時較長,隨機搜索不會對每一種參數(shù)組合進行遍歷,而是隨機抽取指定數(shù)量的若干組參數(shù)組合,然后對這若干組參數(shù)組合進行遍歷,多次隨機搜索便有可能搜索到效果較為理想的一組參數(shù)。對于參數(shù)范圍比較廣或者數(shù)據(jù)量比較大的情況,隨機搜索的性價比要優(yōu)于網(wǎng)格搜索。

無論是網(wǎng)格搜索還是隨機搜索,都是將訓練集劃分成幾等份,利用交叉驗證思想得到一組最優(yōu)參數(shù),但并不意味著在未經(jīng)訓練的測試集上仍然是最優(yōu)參數(shù),所謂的最優(yōu)參數(shù)在測試集上的分類準確度也可能很不理想。

參考文獻:

[1]KRAJCINOVIC D,F(xiàn)ONSEKA G U.The continuous damage theory of brittle materials[J].J Appl Mech,1981,48(4):809-824.王立柱,宋欽欽.基于均線及統(tǒng)計規(guī)律的股票投資策略[J].沈陽師范大學學報(自然科學版),2021,39(6):527-530.

[2]曹正鳳,紀宏,謝邦昌.使用隨機森林算法實現(xiàn)優(yōu)質股票的選擇[J].首都經(jīng)濟貿(mào)易大學學報,2014,16(2):21-27.

[3]王劍輝,蔣杏麗.基于LSTM模型對印度新冠肺炎疫情的預測[J].沈陽師范大學學報(自然科學版),2022,40(6):554-557.

[4]趙成兵,劉丹秀,謝新平,等.基于時間序列的季節(jié)性氣溫預測研究[J].安徽建筑大學學報,2022,30(3):83-89.

[5]陶曄,杜景林.基于隨機森林的長短期記憶網(wǎng)絡氣溫預測[J].計算機工程與設計,2019,40(3):737-743.

[6]王重仁,韓冬梅.基于超參數(shù)優(yōu)化和集成學習的互聯(lián)網(wǎng)信貸個人信用評估[J].統(tǒng)計與決策,2019,35(1):87-91.

[7]溫學兵,謝維,姚佳宜.基于隨機森林和支持向量機模型的期刊評價[J].沈陽師范大學學報(自然科學版),2022,40(2):174-179.

[8]林娜娜,秦江濤.基于隨機森林的A股股票漲跌預測研究[J].上海理工大學學報,2018,40(3):267-273,301.

[9]方昕,李旭東,曹海燕,等.基于改進隨機森林算法的股票趨勢預測[J].杭州電子科技大學學報(自然科學版),2019,39(2):22-27.

[10]鄧晶,李路.參數(shù)優(yōu)化隨機森林在股票預測中的應用[J].軟件,2020,41(1):178-182.

[11]王惠瑩,郝泳濤.基于技術指標和隨機森林的股價走勢預測算法[J].現(xiàn)代計算機,2021,27(27):43-47,52.

[12]SADORSKY P.A random forests approach to predicting clean energy stock prices[J].J Risk and Financial Manag,2021,14(2):48.

[13]GHOSH P,NEUFELD A,SAHOO J K.Forecasting directional movements of stock prices for intraday trading using LSTM and random forests[J].Financ Res Lett,2022,46:102280.

[14]MEHER B K,SINGH M,BIRAU R,et al.Forecasting stock prices of fintech companies of India using random forest with high-frequency data[J].J Open Innovation:Technology,Market,and Complexity,2024,10(1):100180.

[15]溫博文,董文瀚,解武杰,等.基于改進網(wǎng)格搜索算法的隨機森林參數(shù)優(yōu)化[J].計算機工程與應用,2018,54(10):154-157.

[16]蔡明,孫杰,楊維發(fā),等.基于自適應遺傳算法的隨機森林模型參數(shù)優(yōu)化方法[J].智能計算機與應用,2022,12(12):175-179.

[17]王宇韜,錢妍竹.Python大數(shù)據(jù)分析與機器學習商業(yè)案例實戰(zhàn)[M].北京:機械工業(yè)出版社,2020.

[18]BERGSTRA J,BENGIO Y.Random search for hyper-parameter optimization[J].J Mach Learn Res,2012,13(2):281-305.

【責任編輯:溫學兵】

收稿日期:2023-06-08

基金項目:遼寧省教育科學規(guī)劃一般項目(JG20DB419); 遼寧省檔案科技項目(2023-B-025)。

作者簡介:

王立柱(1979—),男,遼寧營口人,沈陽師范大學副教授,博士; 通信作者:王秋萍(1982—),女,遼寧沈陽人,沈陽師范大學副教授,博士。

猜你喜歡
隨機森林股票
隨機森林在棉蚜蟲害等級預測中的應用
基于二次隨機森林的不平衡數(shù)據(jù)分類算法
軟件(2016年7期)2017-02-07 15:54:01
拱壩變形監(jiān)測預報的隨機森林模型及應用
本周創(chuàng)出今年以來新高的股票
本周創(chuàng)出今年以來新高的股票
基于隨機森林算法的飛機發(fā)動機故障診斷方法的研究
本周連續(xù)上漲3天以上的股票
近期連續(xù)漲、跌3天以上的股票
启东市| 农安县| 邵阳县| 沂水县| 郁南县| 息烽县| 菏泽市| 江西省| 平度市| 张北县| 安义县| 郧西县| 威信县| 绥中县| 平原县| 洪湖市| 将乐县| 翁源县| 马龙县| 蓝田县| 安西县| 滁州市| 鹤壁市| 抚顺市| 大姚县| 偃师市| 南皮县| 白沙| 蒙山县| 韶山市| 汨罗市| 治多县| 绩溪县| 芒康县| 米泉市| 定陶县| 始兴县| 绿春县| 美姑县| 临澧县| 苍南县|