鄧晶 李路
摘 ?要: 為了提高股票預測的正確率,參照股票研究的指標體系,以股票的相對強弱、變動速率、能量潮、異同移動平均線以及威廉指標五個純技術指標作為股票預測的特征。通過網格搜索對隨機森林的參數進行了優(yōu)化,構建基于純技術指標的和參數優(yōu)化隨機森林的股票預測模型,并以平安銀行、萬科、深振業(yè)A、神州高鐵、美麗生態(tài)2017年4月30日到2019年6月30日所有交易日作為實驗室數據,實驗結果與原始隨機森林、決策樹以及支持向量機分類模型對比,證實了參數優(yōu)化后的隨機森林股票預測模型在模型評價中的準確率和AUC值都高于其他模型。
關鍵詞: 隨機森林;技術指標;參數優(yōu)化;網格搜索;股價預測
中圖分類號: TP301.6 ? ?文獻標識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.01.039
本文著錄格式:鄧晶,李路. 參數優(yōu)化隨機森林在股票預測中的應用[J]. 軟件,2020,41(01):178182
【Abstract】: In order to improve the accuracy of stock prediction, according to the index system of stock research, RSI, ROC, OBV, MACD and Williams %R are taken as the characteristics of stock prediction.The parameters of the random forest were optimized through grid search, and a stock prediction model based on pure technical indicators and parametric optimized random forest was constructed. All trading days from April 30, 2017 to June 30, 2019 were taken as laboratory data by Ping An Bank, Vanke, SHENZHEN ZHENYE (GROUP) CO.LTD, China High-speed Railway and Beautiful Ecology. The experimental results are compared with the original random forest, decision tree and SVM classification models, and it is confirmed that the accuracy and AUC of the optimized random forest stock prediction model are higher than other models in model evaluation.
【Key words】: Random forest; Technical indicators; Parametric optimization; Grid search; Stock price forecasting
0 ?引言
金融數據越來越多,投資者要想通過投資股票獲得收益,需學會有效的從這些復雜的數據中分析股票的漲跌趨勢。股票價格經常受到很多因素的影響,從基本面分析到技術分析再到量化投資,技術指標在股票預測中發(fā)揮著越來越重要的作用。而量化投資作為一種主動性投資策略,相對于傳統(tǒng)型的投資策略,具有紀律性、系統(tǒng)性、及時性、準確性、分散化等優(yōu)點。
近年來,基于決策樹、隨機森林、支持向量機、神經網絡等機器學習算法的量化投資策略層出不窮,為了給投資者帶來更好的效益,股票價格的漲跌(高收益的投資模型)自然也成為了國內外學者的熱點研究對象。到目前為止,眾多學者建立了不同的股票預測模型。覃思乾[1](2006)應用灰色系統(tǒng)理論建立GM(1,1)預測模型對股票價格變化進行預測,比用ARIMA模型進行預測具有更高的精確度;張晨希[2](2006)等使用支持向量機對某上市公司股票走勢進行預測,測試表明預測的精度明顯高于采用BP算法等傳統(tǒng)神經網絡分類方法的測試結果;謝國強[3](2012)提出了利用粒子群算法優(yōu)化的支持向量回歸模型對股票價格預測,實驗仿真結果顯示其訓練集和測試集的平均相對誤差比BP神經網絡分別減小了49.5%和26.3%。王淑燕[4](2016)等通過分析國內外量化選股模型采用的指標體系,提出了8因子選股模型指標體系,并使用隨機森林算法實現(xiàn)了對2013年4月股票漲跌情況較高精確度的預測。除了量化投資以外,隨機森林算法在人臉識別[5]、系統(tǒng)檢測[6-7]、文本分類[8]等多個領域都有著廣泛的應用。為了探究隨機森林算法在純技術指標下對股價漲跌預測的精確率,本文從國內較成熟的選股指標體系出發(fā),選取了五個純技術指標,并建立一個基于隨機森林的股價漲跌預測模型,為投資者提供精確的股票漲跌參考依據。
1 ?隨機森林模型結構和原理介紹
隨機森林算法是一種集成學習方法,隨機森林的基分類器是決策樹,而決策樹是通過把樣本從根節(jié)點排列到某個葉子節(jié)點來分類樣本數據,主要過程包括特征選擇、決策樹的生成與決策樹的剪枝。當數據中噪聲或特征過多時,決策樹容易出現(xiàn)對訓練集的過擬合問題,而最新的研究表明[9],構造多個分類器或回歸器的集成算法可以提高分類或預測的準確率。隨機森林算法是一種利用多個決策樹分類器進行分類和預測的方法,可以用于處理回歸、分類、聚類以及生存分析等問題,當隨機森林應用于分類或回歸問題時,就是由多個分類樹或回歸樹集成的分類器,主要利用多個子樣本的不同特征組建多個決策樹,然后對每個樣本進行預測得出最終類標簽。
2 ?隨機森林股票預測參數優(yōu)化
2015年,聶敬云[10]等采用遺傳算法對最小二乘支持向量機模型的懲罰因子和核函數參數進行優(yōu)化,并將其與BP神經網絡模型進行了比較,結果表明該預測模型具有更高的預測精度。2018年,劉靜[11]等提出一種蟻群優(yōu)化與支持向量機相結合的入侵檢測方法(ACO-SVM),提高了算法的收斂性;黃金金[12]等建立RS-SVM傳感器網絡入侵檢測算法,并用狼群算法優(yōu)化參數降低誤警率;陶穎新[13]等利用改進PSO算法得到模糊RBF神經網絡的初始權值和閾值,然后對其進行二次優(yōu)化得到最終的權值和閾值來提高對MBR膜通量的預測精度。2019年,王燕、郭元凱[14]在參數尋優(yōu)的過程中,結合網格搜索算法的思想,構建了GS-XGBoost金融預測模型,并與XGBoost、SVM對比,結果表明GS-XGBoost模型在預測值與實際值的擬合度上表現(xiàn)最好??梢妰?yōu)化參數是提高模型泛化能力的有效方式,而隨機森林是從原始數據中隨機選取訓練集和特征,使得算法具有很好抗噪能力,同時也給算法帶來了很多參數,如決策樹的棵數、樹的最大深度、葉節(jié)點的最小樣本數、最大特征數等,這些參數的選取對算法的性能有很大的干預作用。因此本文建立一個網格搜索與隨機森林相結合的股票預測模型,利用網格搜索算法優(yōu)化基于隨機森林股票預測模型的參數。
隨機森林算法可以使用python軟件的sklearn機器學習軟件包來實現(xiàn)。本文利用網格搜索法窮舉該算法的兩個主要參數:決策樹的數量(n_esti-mators)、樹的最大深度(max_depth)。首先將確定森林中決策樹的數量、樹的最大深度的取值范圍,將可能取值進行排列組合,列出所有組合生成“網格”。然后將各組參數用于隨機森林訓練,默認使用3折交叉驗證對模型進行評估,即先將訓練數據集 劃分為3個相等訓練數據子集 ,其中 依次不重復的選取其中一個訓練數據子集本作為測試集,其他2個訓練數據子集用來訓練,共重復3次,然后對這3次測試得分取均值作為最終的單一評估。這種方法的優(yōu)勢在于,保證每個訓練數據子集都參與訓練且都被測試,降低泛化誤差。在擬合函數嘗試了所有的參數組合后,最終得分最高的參數組合為最優(yōu)參數組合。參數優(yōu)化的隨機森林股票預測實驗流程圖如圖1所示。
基本步驟如下:
(1)獲取股票價格等相關數據,計算得出技術類指標并設置標簽組成數據集,并對數據進行分析和處理。
(2)將網格搜索算法應用于隨機森林預測模型中,并使用交叉驗證對各組參數的表現(xiàn)進行評估,得出最優(yōu)參數組合。
(3)構建隨機森林預測模型,然后使用測試集對參數優(yōu)化后的隨機森林股票預測模型進行測試,對比決策樹和支持向量分類器,并作模型評價。
(4)根據股票漲跌情況的預測分析給投資者做出建議。
3 ?特征選擇和處理
量化選股策略的特征選擇大致的分為基本面指標和技術面指標這兩個方面。前者的代表為多因子模型,后者的代表為動量反轉策略。傳統(tǒng)的技術指標分析依賴投資者的經驗,2015年,梁淇俊,鄭貴俊等[15]以MACD、RSI、OBV指標為交易信號,隨機抽取一只股票進行擇優(yōu),發(fā)現(xiàn)技術指標聯(lián)合作用顯著,因此本文建立了純技術指標的多因子模型。通過原始數據計算得到相對強弱、變動速率、能量潮、異同移動平均線以及威廉指標五個純技術指標作為隨機森林選股模型的特征,五個純技術指標含義以及指標的具體計算步驟參考《技術分析A-Z》和百度百科。本文采用的技術指標及分類如表1所示,指標類別及名稱來自通聯(lián)數據https://mall.datayes.com。
由各指標的統(tǒng)計量可知各個指標之間數據差異較大,特別是OBV,其平均值往往遠大于其他指標。為了消除標量之間由量綱引起的誤差,所有數據特征都通過標準化處理,并去除了包含缺失值和奇異值的數據樣本。
4 ?模型評價
4.1 ?準確率
準確率(accuracy)是最常見的評價指標,指被分類正確的樣本數占所有樣本數的百分比,通常來說,準確率是分類器對整體的判斷能力,一般情況下準確率越高,分類器越好,但是準確率過高會產生過擬合現(xiàn)象導致預測效果不好。
4.2 ?ROC曲線與AUC值
ROC曲線也叫受試者工作特征曲線,它是根據機器學習的預測結果對樣本排序,依次將每個樣本劃分為正類,再計算出真正例率和假正例率。以假正例率為縱軸、真正例率為橫軸繪制的曲線即為ROC曲線[9]。實際操作中只能用有限的測試數據樣例來繪制ROC曲線,因此ROC曲線呈現(xiàn)的是一條不光滑的線,曲線下的面積為AUC值。AUC值越大說明分類效果越好。
5 ?實驗結果及分析
實驗一,選取了2017年4月30日至2019年6月30日的A股中具有代表性的萬科證券每一個交易日的收盤價、開盤價、最高價、最低價作為分類的樣本。將延后14天的收盤價對比當日收盤價,如果漲了,標簽為1,否則標簽記為–1。實驗數據源于優(yōu)礦量化平臺https://uqer.datayes.com。經過特征的計算和處理后,最終實驗數據一共含516個交易日。
實驗過程中,首先把數據集大概按照2∶1的比例隨機分成訓練集(345個交易日)和測試集(171個交易日),然后用訓練集分別對隨機森林的決策樹的數量以及最大特征數這兩個主要參數做網格搜索,用3折交叉驗證的測試集(115個交易日)得分的平均值作為評估指標, 選取得分最高的參數組合構建最終的隨機森林股票預測模型。根據數據設置參數樹的棵樹的范圍:1 通過網格搜索得出最優(yōu)參數取值k=150,m=5。從可視化圖中也可以看出隨著最大特征數的增大,模型得分越高。在確定模型后,保持其他變量相同,參數設為默認值,然后和最優(yōu)參數實驗測試準確率進行對比。測試結果見表2,參數優(yōu)化后的隨機森林股票預測模型測試的準確率約為77%,比默認值高2%左右,可見參數優(yōu)化后的隨機森林算法分類能力有所提高。 2013年,劉道文等[16]在分析支持向量機的預測基本原理基礎上,以交叉驗證法確定了回歸的最佳參數并對股票價格指數進行預測, 研究結果表明基于支持向量機預測法能較準確地反映股票價格指數的變化趨勢。為了進一步檢驗在純技術指標下,參數優(yōu)化后的隨機森林對股票分類的效果,本文在構造參數優(yōu)化隨機森林股票預測模型的同時分別與原始參數的隨機森林、決策樹以及支持向量機對股票分類的實驗結果進行比較。 如圖3分別是根據支持向量機(a)、決策樹(b)、原始隨機森林(c)、參數優(yōu)化后的隨機森林(d)四個不同算法的訓練結果畫出來的ROC曲線圖,橫坐標代表“假正例率(FPR)”,縱坐標代表“真正例率(TPR)”,從圖2中可以粗略的看出當TPR在同一水平線上時,參數優(yōu)化后的隨機森林預測的假正例率最低,原始隨機森林次之,支持向量機最差。同時,四者的AUC值分別是0.53、0.73、0.82、0.85,可見在純技術指標下,隨機森林對萬科證券預測的泛化能力是相對較優(yōu)的。 實驗二為了證明隨機森林的參數優(yōu)化對股票預測的有效性,實驗又計算獲得平安銀行、深振業(yè)A、神州高鐵、美麗生態(tài)四個證券公司從2017年4月30日至2019年6月30日的每一個交易日的數據,分別預測五個證券公司股票的漲跌,表3是不同股票預測的實驗結果,結果顯示五個證券公司在參數優(yōu)化后隨機森林的預測下都達到較高的準確率,其中平安銀行預測的準確率最高,比原始隨機森林的預測準確率高出大約6%。其他各證券公司在參數優(yōu)化后的隨機森林的預測下,準確率都比原始隨機森林、決策樹和支持向量機高,這進一步說明了隨機森林股票預測模型的優(yōu)良性和參數優(yōu)化的有效性。 最后從預測的結果分析股票的漲跌情況,如果分類結果為1,則代表該股票14天后仍舊保持漲的趨勢,–1則代表14天后股票即將下跌。從預測結果中可以得到股票在某一段時間內持續(xù)上漲,如第300-400個數據樣本代表數據集中2018年7月31號至2018年12月24號的所有交易日,因此投資者可以在股票持續(xù)上漲期間持倉,待到下跌時平倉獲利。 6 ?結語 本文針對股票預測問題,提出了基于隨機森林的股價漲跌預測模型,一方面,由于基本面的指標更新比較慢,也為了防止投資行為過度依賴經驗,構造多個純技術指標對股票預測,另一方面用網格搜索的方法對隨機森林的參數進行優(yōu)化。最終通過對不同股票進行股價漲跌的實驗發(fā)現(xiàn)在多個純技術指標下,參數優(yōu)化后的隨機森林對股票的預測模型相對更具有可靠性,能為股民提供好的投資參考,同時也體現(xiàn)了股票市場的可預測性。但中國股市不斷發(fā)展,在未來的研究中,對指標的構造和選取以及算法的優(yōu)化還需繼續(xù)完善。 參考文獻 [1] 覃思乾. 股價預測的GM(1, 1)模型[J]. 統(tǒng)計與決策, 2006(06): 22-23. [2] 張晨希, 張燕平, 張迎春, 等. 基于支持向量機的股票預測[J]. 計算機技術與發(fā)展, 2006(06): 35-37. [3] 謝國強. 基于支持向量回歸機的股票價格預測[J]. 計算機仿真, 2012, 29(04): 379-382. [4] 王淑燕, 曹正鳳, 陳銘芷. 隨機森林在量化選股中的應用研究[J]. 運籌與管理, 2016, 25(03): 163-168+177. [5] 全雪峰. 基于奇異熵和隨機森林的人臉識別[J]. 軟件, 2016, 37(02): 35-38. [6] 劉陽, 杜華軍, 岳子涵, 等. 基于隨機森林的無人機檢測方法[J]. 計算機工程與應用, 2019, 55(07): 162-167. [7] 盧曉勇, 陳木生. 基于隨機森林和欠采樣集成的垃圾網頁檢測. 計算機應用, 2016, 36(3): 731-734. [8] 劉勇, 興艷云. 基于改進隨機森林算法的文本分類研究與應用[J]. 計算機系統(tǒng)應用, 2019, 28(05): 220-225. [9] 周志華. 機器學習[M]. 北京: 清華大學出版社, 2016 [10] 聶敬云, 李春青, 李威威, 等. 關于遺傳算法優(yōu)化的最小二乘支持向量機在MBR仿真預測中的研究[J]. 軟件, 2015, 36(5): 40-44. [11] 劉靜, 楊正校. 改進ACO-SVM在網絡入侵檢測中的應用[J]. 軟件, 2018, 39(10): 57-59. [12] 黃金金, 陳晶, 張鯤. 基于RS-SVM的無線傳感器網絡安全的應用研究[J]. 軟件, 2018, 39(11): 18-20. [13] 陶穎新, 李春青, 蘇華. 基于改進的PSO和模糊RBF神經網絡的MBR膜污染預測[J]. 軟件, 2018, 39(8): 52-56. [14] 王燕, 郭元凱. 改進的XGBoost模型在股票預測中的應用[J/OL]. 計算機工程與應用, 2019-09-03: 1-10. [15] 梁淇俊, 鄭貴俊, 徐守萍. 基于生存分析的擇時策略擇優(yōu)體系研究——以技術指標交易信號為例[J]. 金融經濟學研究, 2015, 30(01): 96-106. [16] 劉道文, 樊明智. 基于支持向量機股票價格指數建模及預測[J]. 統(tǒng)計與決策, 2013(02): 76-78.