1.软件版本
MATLABa
2.本算法理论知识
通过MATLAB对BP神经网络,基于遗传优化的BP神经网络,基于改进遗传优化的BP神经网络以及基于改进遗传优化的组合BP神经网络等多种算法的股价预测性能。从仿真结果可知,基于改进遗传优化的组合BP神经网络性能略优于改进遗传优化的BP神经网络,而比起传统的BP神经网络预测算法和基于传统遗传优化的BP神经网络预测算法,具有较大的性能优势。
3.核心代码
clc;clear;close all;warning off;addpath 'func\'addpath 'func_GA\'%本程序是使用matlab自带BP网络,实现股票预测,用来最后改进算法对比的load data.mat%收盘价格C = OHLC(:,4); Mins = min(C);Maxs = max(C);C = (C-Mins)/(Maxs-Mins);LEN = 10;%样本的划分for i = 1:length(C)-LENPrice1(:,i) = C(i:i+LEN-1);Price2(i) = C(i+LEN);end%训练样本L1 = floor(0.6*length(Price2));for i = 1:L1train_data(:,i) = Price1(:,i); train_aim(i) = Price2(i);end%测试样本L2 = length(Price2) - L1;for i = 1:L2test_data(:,i) = Price1(:,i+L1); test_aim(i) = Price2(i+L1);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%如下的是改进BP网络算法%定义神经网络的各个层的个数Num_In= LEN;Num_Hidden = 5;Num_Out = 1;%构建BP网络net = newff(train_data,train_aim,Num_Hidden);ERR1 = [];ERR2 = [];ERR3 = [];for j = 1:5j%通过改进遗传算法优化BP参数net = func_newGA(net,Num_In,Num_Hidden,Num_Out,train_data,train_aim);%网络训练net.trainParam.showWindow = 0;net = train(net,train_data,train_aim);outputs = sim(net,test_data);d1 = test_aim*(Maxs-Mins) + Mins;d2 = outputs*(Maxs-Mins) + Mins;ERR1 = [ERR1,mean(abs(d1-d2)./d2) ];ERR2 = [ERR2,mean((abs(d1-d2)./d2).^2) ];ERR3 = [ERR3,std((abs(d1-d2)./d2).^2) ];endfigure;plot(d1,'b');hold onplot(d2,'r');legend('真实股价','预测股价');xlabel('时间(days)');ylabel('收盘价格对比');disp('平均误差:');mean(ERR1)disp('平方差:');mean(ERR2)disp('均方差:');mean(ERR3)
4.操作步骤与仿真结论
5.参考文献
[1]李超. 基于自适应遗传算法的BP神经网络预测研究及应用[D]. 山西师范大学.
A06-34
6.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码
如果觉得《【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真》对你有帮助,请点赞、收藏,并留下你的观点哦!