参数优化随机森林在股票预测中的应用

2020-03-02 11:36邓晶李路
软件 2020年1期
关键词:随机森林参数优化技术指标

邓晶 李路

摘  要: 为了提高股票预测的正确率,参照股票研究的指标体系,以股票的相对强弱、变动速率、能量潮、异同移动平均线以及威廉指标五个纯技术指标作为股票预测的特征。通过网格搜索对随机森林的参数进行了优化,构建基于纯技术指标的和参数优化随机森林的股票预测模型,并以平安银行、万科、深振业A、神州高铁、美丽生态2017年4月30日到2019年6月30日所有交易日作为实验室数据,实验结果与原始随机森林、决策树以及支持向量机分类模型对比,证实了参数优化后的随机森林股票预测模型在模型评价中的准确率和AUC值都高于其他模型。

关键词: 随机森林;技术指标;参数优化;网格搜索;股价预测

中图分类号: TP301.6    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.01.039

本文著录格式:邓晶,李路. 参数优化随机森林在股票预测中的应用[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  引言

金融數据越来越多,投资者要想通过投资股票获得收益,需学会有效的从这些复杂的数据中分析股票的涨跌趋势。股票价格经常受到很多因素的影响,从基本面分析到技术分析再到量化投资,技术指标在股票预测中发挥着越来越重要的作用。而量化投资作为一种主动性投资策略,相对于传统型的投资策略,具有纪律性、系统性、及时性、准确性、分散化等优点。

近年来,基于决策树、随机森林、支持向量机、神经网络等机器学习算法的量化投资策略层出不穷,为了给投资者带来更好的效益,股票价格的涨跌(高收益的投资模型)自然也成为了国内外学者的热点研究对象。到目前为止,众多学者建立了不同的股票预测模型。覃思乾[1](2006)应用灰色系统理论建立GM(1,1)预测模型对股票价格变化进行预测,比用ARIMA模型进行预测具有更高的精确度;张晨希[2](2006)等使用支持向量机对某上市公司股票走势进行预测,测试表明预测的精度明显高于采用BP算法等传统神经网络分类方法的测试结果;谢国强[3](2012)提出了利用粒子群算法优化的支持向量回归模型对股票价格预测,实验仿真结果显示其训练集和测试集的平均相对误差比BP神经网络分别减小了49.5%和26.3%。王淑燕[4](2016)等通过分析国内外量化选股模型采用的指标体系,提出了8因子选股模型指标体系,并使用随机森林算法实现了对2013年4月股票涨跌情况较高精确度的预测。除了量化投资以外,随机森林算法在人脸识别[5]、系统检测[6-7]、文本分类[8]等多个领域都有着广泛的应用。为了探究随机森林算法在纯技术指标下对股价涨跌预测的精确率,本文从国内较成熟的选股指标体系出发,选取了五个纯技术指标,并建立一个基于随机森林的股价涨跌预测模型,为投资者提供精确的股票涨跌参考依据。

1  随机森林模型结构和原理介绍

随机森林算法是一种集成学习方法,随机森林的基分类器是决策树,而决策树是通过把样本从根节点排列到某个叶子节点来分类样本数据,主要过程包括特征选择、决策树的生成与决策树的剪枝。当数据中噪声或特征过多时,决策树容易出现对训练集的过拟合问题,而最新的研究表明[9],构造多个分类器或回归器的集成算法可以提高分类或预测的准确率。随机森林算法是一种利用多个决策树分类器进行分类和预测的方法,可以用于处理回归、分类、聚类以及生存分析等问题,当随机森林应用于分类或回归问题时,就是由多个分类树或回归树集成的分类器,主要利用多个子样本的不同特征组建多个决策树,然后对每个样本进行预测得出最终类标签。

2  随机森林股票预测参数优化

2015年,聂敬云[10]等采用遗传算法对最小二乘支持向量机模型的惩罚因子和核函数参数进行优化,并将其与BP神经网络模型进行了比较,结果表明该预测模型具有更高的预测精度。2018年,刘静[11]等提出一种蚁群优化与支持向量机相结合的入侵检测方法(ACO-SVM),提高了算法的收敛性;黄金金[12]等建立RS-SVM传感器网络入侵检测算法,并用狼群算法优化参数降低误警率;陶颖新[13]等利用改进PSO算法得到模糊RBF神经网络的初始权值和阈值,然后对其进行二次优化得到最终的权值和阈值来提高对MBR膜通量的预测精度。2019年,王燕、郭元凯[14]在参数寻优的过程中,结合网格搜索算法的思想,构建了GS-XGBoost金融预测模型,并与XGBoost、SVM对比,结果表明GS-XGBoost模型在预测值与实际值的拟合度上表现最好。可见优化参数是提高模型泛化能力的有效方式,而随机森林是从原始数据中随机选取训练集和特征,使得算法具有很好抗噪能力,同时也给算法带来了很多参数,如决策树的棵数、树的最大深度、叶节点的最小样本数、最大特征数等,这些参数的选取对算法的性能有很大的干预作用。因此本文建立一个网格搜索与随机森林相结合的股票预测模型,利用网格搜索算法优化基于随机森林股票预测模型的参数。

随机森林算法可以使用python软件的sklearn机器学习软件包来实现。本文利用网格搜索法穷举该算法的两个主要参数:决策树的数量(n_esti-mators)、树的最大深度(max_depth)。首先将确定森林中决策树的数量、树的最大深度的取值范围,将可能取值进行排列组合,列出所有组合生成“网格”。然后将各组参数用于随机森林训练,默认使用3折交叉验证对模型进行评估,即先将训练数据集 划分为3个相等训练数据子集 ,其中 依次不重复的选取其中一个训练数据子集本作为测试集,其他2个训练数据子集用来训练,共重复3次,然后对这3次测试得分取均值作为最终的单一评估。这种方法的优势在于,保证每个训练数据子集都参与训练且都被测试,降低泛化误差。在拟合函数尝试了所有的参数组合后,最终得分最高的参数组合为最优参数组合。参数优化的随机森林股票预测实验流程图如图1所示。

基本步骤如下:

(1)获取股票价格等相关数据,计算得出技术类指标并设置标签组成数据集,并对数据进行分析和处理。

(2)将网格搜索算法应用于随机森林预测模型中,并使用交叉验证对各组参数的表现进行评估,得出最優参数组合。

(3)构建随机森林预测模型,然后使用测试集对参数优化后的随机森林股票预测模型进行测试,对比决策树和支持向量分类器,并作模型评价。

(4)根据股票涨跌情况的预测分析给投资者做出建议。

3  特征选择和处理

量化选股策略的特征选择大致的分为基本面指标和技术面指标这两个方面。前者的代表为多因子模型,后者的代表为动量反转策略。传统的技术指标分析依赖投资者的经验,2015年,梁淇俊,郑贵俊等[15]以MACD、RSI、OBV指标为交易信号,随机抽取一只股票进行择优,发现技术指标联合作用显著,因此本文建立了纯技术指标的多因子模型。通过原始数据计算得到相对强弱、变动速率、能量潮、异同移动平均线以及威廉指标五个纯技术指标作为随机森林选股模型的特征,五个纯技术指标含义以及指标的具体计算步骤参考《技术分析A-Z》和百度百科。本文采用的技术指标及分类如表1所示,指标类别及名称来自通联数据https://mall.datayes.com。

由各指标的统计量可知各个指标之间数据差异较大,特别是OBV,其平均值往往远大于其他指标。为了消除标量之间由量纲引起的误差,所有数据特征都通过标准化处理,并去除了包含缺失值和奇异值的数据样本。

4  模型评价

4.1  准确率

准确率(accuracy)是最常见的评价指标,指被分类正确的样本数占所有样本数的百分比,通常来说,准确率是分类器对整体的判断能力,一般情况下准确率越高,分类器越好,但是准确率过高会产生过拟合现象导致预测效果不好。

4.2  ROC曲线与AUC值

ROC曲线也叫受试者工作特征曲线,它是根据机器学习的预测结果对样本排序,依次将每个样本划分为正类,再计算出真正例率和假正例率。以假正例率为纵轴、真正例率为横轴绘制的曲线即为ROC曲线[9]。实际操作中只能用有限的测试数据样例来绘制ROC曲线,因此ROC曲线呈现的是一条不光滑的线,曲线下的面积为AUC值。AUC值越大说明分类效果越好。

5  实验结果及分析

实验一,选取了2017年4月30日至2019年6月30日的A股中具有代表性的万科证券每一个交易日的收盘价、开盘价、最高价、最低价作为分类的样本。将延后14天的收盘价对比当日收盘价,如果涨了,标签为1,否则标签记为–1。实验数据源于优矿量化平台https://uqer.datayes.com。经过特征的计算和处理后,最终实验数据一共含516个交易日。

实验过程中,首先把数据集大概按照2∶1的比例随机分成训练集(345个交易日)和测试集(171个交易日),然后用训练集分别对随机森林的决策树的数量以及最大特征数这两个主要参数做网格搜索,用3折交叉验证的测试集(115个交易日)得分的平均值作为评估指标, 选取得分最高的参数组合构建最终的随机森林股票预测模型。根据数据设置参数树的棵树的范围:1

通过网格搜索得出最优参数取值k=150,m=5。从可视化图中也可以看出随着最大特征数的增大,模型得分越高。在确定模型后,保持其他变量相同,参数设为默认值,然后和最优参数实验测试准确率进行对比。测试结果见表2,参数优化后的随机森林股票预测模型测试的准确率约为77%,比默认值高2%左右,可见参数优化后的随机森林算法分类能力有所提高。

2013年,刘道文等[16]在分析支持向量机的预测基本原理基础上,以交叉验证法确定了回归的最佳参数并对股票价格指数进行预测, 研究结果表明基于支持向量机预测法能较准确地反映股票价格指数的变化趋势。为了进一步检验在纯技术指标下,参数优化后的随机森林对股票分类的效果,本文在构造参数优化随机森林股票预测模型的同时分别与原始参数的随机森林、决策树以及支持向量机对股票分类的实验结果进行比较。

如图3分别是根据支持向量机(a)、决策树(b)、原始随机森林(c)、参数优化后的随机森林(d)四个不同算法的训练结果画出来的ROC曲线图,横坐标代表“假正例率(FPR)”,纵坐标代表“真正例率(TPR)”,从图2中可以粗略的看出当TPR在同一水平线上时,参数优化后的随机森林预测的假正例率最低,原始随机森林次之,支持向量机最差。同时,四者的AUC值分别是0.53、0.73、0.82、0.85,可见在纯技术指标下,随机森林对万科证券预测的泛化能力是相对较优的。

实验二为了证明随机森林的参数优化对股票预测的有效性,实验又计算获得平安银行、深振业A、神州高铁、美丽生态四个证券公司从2017年4月30日至2019年6月30日的每一个交易日的数据,分别预测五个证券公司股票的涨跌,表3是不同股票预测的实验结果,结果显示五个证券公司在参数优化后随机森林的预测下都达到较高的准确率,其中平安银行预测的准确率最高,比原始随机森林的预测准确率高出大约6%。其他各证券公司在参数优化后的随机森林的预测下,准确率都比原始随机森林、决策树和支持向量机高,这进一步说明了随机森林股票预测模型的优良性和参数优化的有效性。

最后从预测的结果分析股票的涨跌情况,如果分类结果为1,则代表该股票14天后仍旧保持涨的趋势,–1则代表14天后股票即将下跌。从预测结果中可以得到股票在某一段时间内持续上涨,如第300-400个数据样本代表数据集中2018年7月31号至2018年12月24号的所有交易日,因此投资者可以在股票持续上涨期间持仓,待到下跌时平仓获利。

6  结语

本文针对股票预测问题,提出了基于隨机森林的股价涨跌预测模型,一方面,由于基本面的指标更新比较慢,也为了防止投资行为过度依赖经验,构造多个纯技术指标对股票预测,另一方面用网格搜索的方法对随机森林的参数进行优化。最终通过对不同股票进行股价涨跌的实验发现在多个纯技术指标下,参数优化后的随机森林对股票的预测模型相对更具有可靠性,能为股民提供好的投资参考,同时也体现了股票市场的可预测性。但中国股市不断发展,在未来的研究中,对指标的构造和选取以及算法的优化还需继续完善。

参考文献

[1] 覃思乾. 股价预测的GM(1, 1)模型[J]. 统计与决策, 2006(06): 22-23.

[2] 张晨希, 张燕平, 张迎春, 等. 基于支持向量机的股票预测[J]. 计算机技术与发展, 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]. 计算机系统应用, 2019, 28(05): 220-225.

[9] 周志华. 机器学习[M]. 北京: 清华大学出版社, 2016

[10] 聂敬云, 李春青, 李威威, 等. 关于遗传算法优化的最小二乘支持向量机在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] 梁淇俊, 郑贵俊, 徐守萍. 基于生存分析的择时策略择优体系研究——以技术指标交易信号为例[J]. 金融经济学研究, 2015, 30(01): 96-106.

[16] 刘道文, 樊明智. 基于支持向量机股票价格指数建模及预测[J]. 统计与决策, 2013(02): 76-78.

猜你喜欢
随机森林参数优化技术指标
拱坝变形监测预报的随机森林模型及应用