基于遗传算法的BP神经网络的股票预测模型-matlab实现
基于遗传算法的BP神经网络的股票预测模型
摘要 在目前的股票投资市场,不少自然人股民的投资主要方式使根据对当天或者一个较长周期对股票数据的预测,来得到下一天的股票数据,从而进行相应的投资。为了满足股民希望能更为理性合理准确的预测股票走向,需要借助机器的帮助。本文主要是利用优化过的遗传算法,利用遗传算法调整BP三层神经网络的权重与阈值,使BP神经网络的训练效果得到提升,从而对股票市场的行情有比较好的预测效果。
关键词 BP神经网络 遗传算法 特征选取
实验论文节选
bp神经网络:
遗传算法:
遗传算法的过程:
实验结果与分析
3.1 实验设置
3.1.1 股票数据库的选择
本实验使用了两种股票种类,为某单支股票(150个)数据与上证综合指数前复权日线(533个)数据,分别保存在两个文件中,将两个数据集的特征向量人工设定为同一列位置,方便后续实验。
3.1.2 实验参数设置
本次实验在Matlab环境上运行,分析给予遗传算法的BP神经网络与随机初始化的BP神经网络在股票预测上的差距。
本次实验所采用的为BP神经网络:训练次数epochs为1000,训练目标goal为0.01,学习速率lr为0.1;遗传算法:群体规模为N=60。
3.2 实验结果与分析
实验1:测试未优化的遗传算法运行的预测效果
本次实验,隐含层神经元个数为3,交叉概率为p_c=0.8,变异概率为p_m=0.05,交叉位置为15L到20L。迭代次数分别设为10次,50次,100次,比较区别。
本次测试出的每一代的最小误差波动很大,而且随着迭代次数的增加,最新一带的最小误差没有明显减小,达不到预期效果。
实验2:测试带指标变异操作的遗传算法优化的预测效果
本次实验,隐含层神经元个数为3,群体规模为N=60,交叉概率为p_c=0.8,变异概率为p_m=0.05,双点交叉,交叉位置为15L到20L。迭代次数分别设为10次,50次,100次,比较区别。
本次测试出的每一代的最小误差虽然波动很大,但是可以看出随着迭代次数的增加,最后一代的最小误差有下降的趋势,但是容易陷入局部最优解,可能使由于参数设置的问题。
实验3:测试优劣同时保留的遗传算法优化的预测效果
本次实验,隐含层神经元个数为3,群体规模为N=60,交叉概率为p_c=0.8,变异概率为p_m=0.05,交叉位置为15L到20L。迭代次数分别设为10次,50次,100次,比较区别。
本次测试出的每一代的最小误差虽然还是有波动,但是较前两个实验,已经是降低的趋势了,最优误差也是下降的趋势,说明此优化可以帮助算法跳出局部最差解,逼近局部最优解。
实验4:测试大变异值的自适应的遗传算法优化的预测效果
本次实验,隐含层神经元个数为3,群体规模为N=60,交叉概率为p_c=0.8,交叉位置为15L到20L。迭代次数分别设为10次,50次,100次,比较区别。
本次测试出的每一代的最小误差波动相较前几个实验,波动十分巨大,但是产生当前最优解的个数是最大的,说明可以帮助算法跳出局部最优解。
实验5:遗传算法不同参数的遗传算法优化的预测效果
可以看出,虽然最终的最终误差相差很小,但是种群个数为100的遗传算法明显要比种群个数为60的遗传算法收敛效果要好,相应的,算法的运行时间也有所增加。
实验6:BP神经网络算法不同参数的预测效果
可以看出,隐含层神经元个数为3个时,BP神经网络的预测效果更好。
股票预测模型实验结果对比:实验结果选取证综合指数前复权日线数据的总预测曲线。
图1 普通BP神经网络的预测效果
图1中,绿色线为股票真实值。可以看出,进行4次的普通BP神经网络算法的预测,预测效果十分不稳定。
图2 优化BP神经网络的预测效果
图2中,绿色线为股票真实值,红色线为带指标变异操作的遗传算法优化后的BP神经网络的预测值,蓝色线为优劣同时保留的遗传算法优化后的BP神经网络的预测值,黑色线为普通遗传算法优化后的BP神经网络的预测值,紫色线为大变异值的自适应的遗传算法优化后的BP神经网络的预测值。可以看出,这四次实验的预测效果比普通BP神经网络算法的预测效果稳定很多,也更为准确。
图3 优化BP神经网络的预测效果(放大节选)
从图3中,可以看出,预测效果的最好的是优劣同时保留的遗传算法优化后的BP神经网络,其次是带指标变异操作的遗传算法优化后的BP神经网络,然后是普通遗传算法优化后的BP神经网络,最差的是大变异值的自适应的遗传算法优化后的BP神经网络。
针对以上实验,可以得知,在遗传算法的优化下BP神经网络的预测值明显比未优化的普通BP神经网络的预测值更为准确和稳定。更进一步对遗传算法进行优化,优化的关键点在于遗传算法的选择、交叉、变异三大操作,优化后预测的准确度也有了进一步的提升
参考到的资料:
https://download.csdn.net/download/u010667861/9617803
[1] 史峰,王辉,郁磊,胡斐. MATLAB智能算法30个案例分析——基于遗传算法的BP神经网络优化算法[M]. 北京航空航天大学出版社,2011:27-37.
[2] 翁苏骏. 遗传算法改进的新思路及其在股市投资中的应用[D]. 厦门:厦门大学,1999.
本文为原创,转载请注明出处。
代码及论文下载:
https://download.csdn.net/download/zxm_jimin/10976678
- 基于MATLAB实现的云模型计算隶属度
- 基于Matlab的BP神经网络--源代码与工具箱实现
- 基于MATLAB实现的云模型计算隶属度
- 基于ARIMA的股票预测 Python实现 附Github
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(四)Matlab中滤波器HDL代码生成优化
- 基于时间序列的股票趋势预测模型
- Keras:基于python库之Keras建立模型算法来实现【预测】功能的详细攻略(经典,建议收藏)
- 基于Scikit-learn实现回归模型——房价预测
- 基于NAR神经网络的化工产品价格预测的实现(Matlab)
- 人口预测模型Matlab实现Logistic曲线模型
- 基于MATLAB的BP神经网络的算法实现
- 灰色系统预测模型GM(1,1),GM(1,n)及Matlab实现
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(一)在Matlab中高效设计滤波器
- 基于tensorflow实现的鸢尾花预测模型
- R语言基于支持向量机训练模型实现类预测
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(二)Matlab中滤波器的定点化
- NN:实现BP神经网络的回归拟合,基于近红外光谱的汽油辛烷值含量预测结果对比—Jason niu
- 基于SVM的股票预测 Python实现 附Github
- 基于模型设计的FPGA开发与实现:滤波器设计与实现(三)Matlab中滤波器的HDL代码生成
- BP神经网络回归预测模型(python实现)