属于同一类。在过程中不需要剪枝。4.不断下去,直到该节点的所有训练样例都策树进行分类回归,5.对于测试集中的每个样本,得到各自的结果。对于分类问采用生成的n个决题,按众数决定最终分类结果;对于回归问题,由n棵树预测值的均值决定最终预测结果。
三、模型对股票进行分类并检验
(一)获取数据
本文以国内某财经网站的股票信息为样本数据。随机选取1000组股票名称,从公司发布的年中报告中获取有关公司盈利能力、成长能力、营运能力、偿债能力的代表指标数据(刘建荣,2010),如净资产收益率、流动比率、速动比率、资产负债率、存货周转率、应收账款周转率、总资产增长率、主营业收入增长率、净资产增长率、每股收益增长率、流动资产增长率和股东权益增长率等12个指标。排除数据缺少,涨跌为0等各种情况最后得810组股票的完整数据,数据描述性统计量见表1。其中以12个指标为待选属性,股票在公司提交中报后60天的股票与报表发出当日的收盘价对比涨跌为目标属性。由于数据繁杂,单位也各
((《区域金融研究》2018年第9期不相同,先对数据进行规范化、离散化等预处理得到准备数据,如表2。
表1股票数据统计表统计量平均数最大值最小值众数峰度偏度方差净资产收益率(%)流动比率(%)9.69速动比率(%)2.1158.69.915.290.38.721.853.762.227.1621.61资产负债率(%)存货周转率(%)42.741.6294.8.780.169.871.4735.52.537.281.660.539.921.37应收账款周转率(%)总资产增长率(%)49.592.498068.71117.410.010.011.191.8818.88-0.33341.5815.85286.11399.129.37主营业收入增长
33.451851.76-72.5421.916.17302.85172186.45率(%)46.32771.49-83.4120.5312.01149.6288.2541887.8净资产增长率(%)每股收益增长率(%)219.11流动资产增长率(%)-6.4485332.934443.95-30.77-90.7916.090.1321.55-9.794.69156.52156517.74股东权益增长率(%)涨跌幅32.560.612.093.41-1000.93012.040.631.192.175.8.17339948.88087.390.16表20.11部分处理股票数据样例1.2-0.250.061.727.210.02股票代码
600338股票名称
600230沧州600133东湖600507方大600309万华600690青岛600615丰华
珠峰大化高新特钢化学海尔股份
净资产收益率流动比率3.5速动比率1.83.10.92.81.32.32.31.51.7资产负债率1.50.80.50.90.70.80.61.10..9存货周转率2.8应收账款周转率2.44.44.58.66.55.979.81.2总资产增长率117.60.20.13.92.12.813.30.4主营业收入增长率5.81.31.62.31.95.71.60.20.5净资产增长率8每股收益增长率流动资产增长率11.698.4-1009.55.944.44.76.59.66-0.316.53.218.4633.71921.2100股东权益增长率12.4涨跌是916.69.21.813.21410.1是否53.5是6.8是14.9否21是
(二)建立模型
随机森林模型即随机生成多个决策树模型构成一片决策森林。实验通过R语言随机森林算法实现(randomForest包)(RobertI.Kabacoff,2016),根据训练数据建立随机森林模型,对验证数据集进行预测。
20%练样本,、股票数据样本共有40%除训练样本外的数据集为验证数据集。
、60%和80%作为随机森林模型建立的训810条,随机选取其10%、利用随机森林算法,通过对训练数据集建立模型,这里对其训练样本为80%时的建模过程进行举例说明,征集1.详细建模步骤如下:
A随机选取630组股票数据为训练数据集D,特取6302.。
个样本单元,在训练集中随机有放回的抽取形成500组自助样本集。
500次,每次抽金融理论策树的每个节点,3.由500组样本集构建随机选取5003个特征,个决策树模型。在决
利用Gini指数选取最优特征点,点的所属类别由节点对应的众数类别决定4.生成所有500不断生长。
棵决策树,不进行剪枝,(最小节点终端节为1)个结果,5.。
决策树分别对验证集进行分类预测,由众数决定最终结果。
得到500(三)模型预测与评价
利用训练数据集建立随机森林模型,对检测数据进行预测分类,检验其正确率。对模型进行评价,以训练数据集为80%,测试集为20%为例,可以得到混淆矩阵(ConfusionMatrix)是模式识别领域中一种表达方式,常用于描述数据真实属性和预测属性的关系,是一种评价分类器性能的方法,行标为真实结果,列标为预测结果,如表3。
表380%数据的测试集混淆矩阵否是否是
6342通过准确率(Accuracy)、识别精确度(111Precision)
和反馈率(Recall)对其进行评价。
Accuracy=TP+TNTP++FN
FP+FN(2)
Precision=TPTP
+FP(3)
Recall=TPTP
+FN(4)
其中,TP为被预测上涨,真实也上涨的股票样本数。FNTN为被预测下跌,真实也下跌的股票样本数。被预测上涨真实却下跌的股票样本数。可以看到其为被预测下跌,真实却上涨的股票样本数。FP为准确率即所有预测正确的股票样本数占总测试集的比例为70.37%,识别精确度即预测上涨实际也上涨的股票样本数和所有预测为上涨的股票样本数的比例为72.54%,反馈率即预测上涨实际也上涨的股票样本数和所有预测正确的股票样本为97.37%,均说明该模型能达到预测准确度要求。通过R语言进行多次预测,得到平均正确率如表4所示。根据预测结果能够看出,训练集的预测正确率大致保持不变,维持在72%左右。测试数据集的准确率随着数据增多在缓慢增长,最终也可以维持72%左右。
-37-
金融理论表4不同训练集模型正确率训练集占比
训练集预测正确率%验证集预测正确率%
71.4210%72.7620%70.4372.3572.9840%71.9860%80%71.6972.0672.2272.9四、与决策树模型对比研究
为验证模型的优缺点,与决策树进行对比分析。决策树(Decisiontree)是一种广泛应用的分类模型。通常有ID3、C4.5和CART三种算法模型。CART只能构建二叉树,ID3和C4.5可以构造多叉树模型。研究采用500CART模型。在某财经网站随机选取2017包(张良均等,组股票数据建立决策树模型。通过2017)建立决策树模型。再次在财经网R语言rpart年站上随机选取288组股票。利用决策树模型与随机森林模型对其进行预测,ing得到ROC式,灵敏度为纵坐标,Characteristic)曲线1-(判断二分类模型的一种方(ReceiverOperat⁃特异性为横坐标),如图1。由AUC(AreaUnderCurve)(ROC曲线下的面积,可以直观判断分类器效果,越接近1效果越好)判断模型优劣,结果明显看出随机森林的AUC远远大于决策树。随机森林AUC=0.9841,决策树AUC=0.7208。决策树的缺点在于容易过拟合,但是相较于别的分类模型更加直观。考虑到消耗时间也是评价模型优劣的一个指标,可以发现决策树建立模型并预测出结果多耗费时间与随机森林时间比值为0.7413,这个时间比值也是可以理解的。从ROC曲线来看,财务指标在决策树模型中也有较好发挥。
五、结语
近几年,国内外运用数据挖掘对股票数据进行分
析建模的研究越来越多。本文将股票涨跌分为两类,选取衡量上市公司投资价值的十二个指标,运用随机森林算法进行建模研究。通过对验证数据集的预测结果发现,将财务数据作为指标在预测股票涨跌这个问题上的准确率较高,具有一定的参考意义。
-38-
《区域金融研究》2018年第9期
图1随机森林与决策树的ROC曲线参考文献
RegressionTrees[1]Breiman[M]L.wadsworth,Friedman,1984.J,StoneC.ClassificationandLearning[2],1986QuinlanJR.,1(1):81-10.Inductionofdecisiontrees[J].Machine[3](美)RobertI.Kabacoff著.R语言实战(第2版)[M].王
370.
小宁,刘撷芯,黄俊文,等译.北京:人民邮电出版社,2016:368-[4]方子良.时序法在股市行情技术分析中的应用[J].南京理工大学学报,1999.23(2):149-153.
[5]龙建成,李小平.基于神经网络的股票市场趋势预测J].西安电子科技大学学报,2005(3):460-463.
[6]刘建荣,潘和平.基于财务指标体系的中国上市公司投资价值分析[J].管理学家(学术版),2010(5):16-25.2012[:67-73.
7]李航.统计学习方法[M].北京:清华大学出版社,[8]潘林.基于小波分析与神经网络的股票市场预测应用研究[D].武汉:武汉理工大学,2006:86.
[9]张良均,云伟表,王路,等.R语言数据分析与挖掘实战M].北京:机械工业出版社,2017:73-79.
[10]郑文.数据挖掘在股票分析中的应用[D].厦门:复旦大学,2012:60.
(责任编辑:刘婵婵)(校对:SHT)
[[