[发明专利]一种基于改进随机森林算法的股票收益率预测方法在审
申请号: | 201910180723.7 | 申请日: | 2019-03-11 |
公开(公告)号: | CN110059852A | 公开(公告)日: | 2019-07-26 |
发明(设计)人: | 方昕;陈玲玲 | 申请(专利权)人: | 杭州电子科技大学 |
主分类号: | G06Q10/04 | 分类号: | G06Q10/04;G06Q10/06;G06Q40/04;G06K9/62;G06N3/00 |
代理公司: | 杭州君度专利代理事务所(特殊普通合伙) 33240 | 代理人: | 朱月芬 |
地址: | 310018 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 随机森林 股票 算法 趋势预测 特征选择 预测 粒子群算法 参数选择 分类性能 趋势变化 属性特征 算法优化 特征属性 特征子集 网格搜索 预测性能 分类 准确率 维度 剔除 改进 筛选 引入 重复 优化 | ||
1.一种基于改进随机森林算法的股票收益率预测方法,其特征在于,具体包括以下步骤:
步骤1:数据获取,通过网站获取股票日数据;
将数据分为训练集,验证集,测试集;
步骤2:获取数据进行指数平滑:
S0=Y0 t=0 (1)
St=α*Yt+(1-α)*St-1 t>0 (2)
式中St表示时间t的平滑值,Yt表示时间t的实际值;
S0表示t=0时的数据平滑值,Y0表示t=0的实际值,t表示获取股票日的天数;St-1时间为t-1的平滑值,α为指数平滑因子,0<α<1;步骤3:特征提取
根据指数平滑结果计算技术指标,平滑的时间序列数据计算特征矩阵,将被投资者用来判断股票趋势涨跌的技术指标作为特征;
步骤4:PSO算法进行特征选择
将技术指标作为粒子群算法中的粒子,PSO算法中粒子的初始速度与位置随机分配,局部最优解Pidbest是当前迭代情况下粒子的最优位置,全局最优解Pgdbest是整个种群的最优位置;假设粒子群搜索空间维度为D,共有m个粒子,则粒子在空间的位置为xi=[xi1,xi2,…,xiD],速度为vi=[vi1,vi2,…,viD],i=1…m,计算公式如下所示:
调整空间位置
式中:Vk对应某粒子局部极值在第k维的速度,Xk粒子局部值第k维最优位置,代表第k次迭代过程时粒子群的局部最优位置,代表第k次迭代过程时粒子群的全局最优位置,S(·)表示sigmoid函数,以速度作为sigmoid函数的变量,调整空间位置是将粒子速度映射到[0,1]之间,并与随机数比较,更新粒子的位置状态,c1,c2是学习因子,且为正数,w是惯性权重,rand1,rand2∈[0,1],随机均匀分布;
步骤5:设定判定条件:
设定判定条件:若迭代次数超过最大迭代次数,适应度低于设定的值,则跳出循环;
步骤6:特征选择:
将步骤4粒子群特征选择得到的二进制编码作为输入特征用于趋势预测,其中1表示被选中,0表示不被选中;
步骤7:输出最优特征:
若满足步骤5,设定的条件输出最优特征,否则返回步骤4;
步骤8:构建数据矩阵:
根据步骤7选择出的最优特征构建输入随机森林的数据矩阵;
步骤9:训练集和验证集进行交叉验证:
为提高随机森林的预测精确度,将训练集,验证集采用交叉验证进行调参,90%用于训练模型,10%用于验证模型;利用网格搜索算法对随机森林进行参数寻优,包括树的深度,随机状态,树节点的变量数、树的个数、OOB误分率以及变量重要性估计来提升预测准确度,从而得到预测模型,使得模型对数据有较好的适应度和更高的精度;
步骤10:股票交易信号即数据标签的建立:
将步骤8构建的数据矩阵作为训练数据,输入到随机森林算法进行训练,构建交易信号Yj={y1,y2,…,yj},其中j=1,2,…,n为样本编号;交易信号的具体构建步骤如下:
1)计算日均价pj
其中Cj表示股票收盘价,Hj表股票最高价,Lj表示最低价;
2)计算未来k天的算数收益Vj,k=1,2,…,10;
3)构建交易信号yj
步骤11:样本内训练:
将由最优特征构建的数据矩阵输入随机森林算法模型进行训练,并用网格搜索算法对新的最优特征数据集进行参数寻优,并与实际股票趋势进行比较,得出股票预测的趋势以及预测的准确性;
步骤12:模型评价:
根据随机森林算法分类过程中,分类预测结果可以用混淆矩阵表示,如下表1所示:
表1混淆矩阵
预测为+1 预测为0 预测为-1 真实为+1 TP FZ1 FN1 真实为0 FP1 TZ FN2 真实为-1 FP2 FZ2 TN
其中TP为正确分类的+1,TZ正确分类的0,TN为正确分类的负类,FP1为0类错误分为+1类,FP2为-1类错误分为+1类,FZ1为+1类错误分为0类,FZ2为-1类错误分为0类,FN1为+1类错误分为-1类,FN2为0类错误分为-1类,FP为FP1+FP2,FN(为FN1+FN2,FZ为FZ1+FZ2,N=NTP+NFN+NFP+NTN+NTZ表示样本总量;
准确率Accuracy表示测试集中被预测正确的概率,召回率Recall表示原来是正类的样本预测对的概率,查准率Precision表示所有被预测为正类的样本中正确的概率,计算公式分别如下所示:
Recall=TP/(TP+FN) (11)
Precision=TP/(TP+FP) (12)
F是由灵敏度和查准率的加权平均值组成的综合性能指标,F值越趋近于1表示分类结果越好,公式如下:
以上这些参数是从混沌矩阵中获得的另一方面,在随机森林生成过程中,用bootstrap方法生成训练集,由于是有放回的重复抽样,与原始数据相比,只有大约63%的数据被重复抽取,其余数据不会出现,其中其余数据就是袋外数据OOB,使用袋外数据来估计随机森林算法的泛化能力,称之为OOB估计;以一棵树为单位,用OOB数据检测到的正确率为OOBscore,检测到的误差就是袋外误差OOBerror,将所有树的OOBerror取平均就是随机森林的OOB'error,OOB'error越小说明RF的泛化能力越强;适应度值Fitness由F与OOB'error组成,值越小越好,公式如下:
OOBerror=1-OOBscore (14)
Fitness=OOB'error+(1-F) (15)
步骤13:样本外测试:
确定最优参数后,再用测试数据来测试训练完后的随机森林算法模型,得到分类结果,以测试集所有预处理后的样本特征作为模型的输入,得到每个样本的T+k预测值得到分类结果,并与实际股票趋势进行比较,得出股票预测的趋势以及预测的准确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州电子科技大学,未经杭州电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910180723.7/1.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理