【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真
2023-09-11 14:15:33 时间
1.软件版本
MATLAB2021a
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)-LEN
Price1(:,i) = C(i:i+LEN-1);
Price2(i) = C(i+LEN);
end
%训练样本
L1 = floor(0.6*length(Price2));
for i = 1:L1
train_data(:,i) = Price1(:,i);
train_aim(i) = Price2(i);
end
%测试样本
L2 = length(Price2) - L1;
for i = 1:L2
test_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:5
j
%通过改进遗传算法优化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) ];
end
figure;
plot(d1,'b');
hold on
plot(d2,'r');
legend('真实股价','预测股价');
xlabel('时间(days)');
ylabel('收盘价格对比');
disp('平均误差:');
mean(ERR1)
disp('平方差:');
mean(ERR2)
disp('均方差:');
mean(ERR3)
4.操作步骤与仿真结论
算法 | 平均误差 | 平方差 | 均方差 |
BP神经网络 | 0.0343 | 0.0032 | 0.0026 |
遗传优化BP神经网络 | 0.0191 | 0.00056 | 0.000682 |
自适应遗传优化BP神经网络 | 0.0165 | 4.214e-04 | 5.69e-04 |
自适应遗传优化组合BP神经网络 | 0.0160 | 4.00e-04 | 5.40e-04 |
5.参考文献
[1]李超. 基于自适应遗传算法的BP神经网络预测研究及应用[D]. 山西师范大学.
A06-34
6.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码
相关文章
- 计及绿证交易及碳排放的含智能楼宇微网优化调度(Matlab代码实现)
- 基于多能互补的热电联供型微网优化运行(Matlab代码实现)
- 电力系统机组组合优化调度(IEEE14节点、IEEE30节点、IEEE118节点)(Matlab代码实现)
- 【路径规划】基于Dijkstra算法及Floyd算法的通信与网络路径规划(Matlab代码实现)
- 【改进模糊神经网络】基于粒子群-万有引力算法PSOGSA 改进的前馈神经网络研究(Matlab代码实现)
- 基于MATLAB的车牌识别系统设计(Matlab代码实现)
- 二进制数据的贝叶斯非参数聚类算法(Matlab代码实现)
- 基于燃压缩空气储能系统的零碳微能源互联网优化调度(Matlab代码实现)
- 基于MATLAB中雷达和视觉合成数据的目标级传感器融合(Matlab代码实现)
- 基于小波变换的图像边缘检测算法的研究(Matlab代码实现)
- 【MATLAB】饼图的绘制
- 【MATLAB】MATLAB 仿真 — 基于matlab的QPSK系统仿真
- 基于深度学习网络的5G通信链路信道估计算法matlab仿真
- m基于多用户MIMO系统的分布式可重构注水算法的matlab仿真
- m基于matlab的信息传输系统包括卷积编码,QPSK调制解调以及维特比译码
- m云计算任务调度优化matlab仿真,输出成本,时间,负荷优化结果,对比ACO,PSO,WOA三种优化算法
- 基于VGG16深度学习网络的目标识别matlab仿真,并结合ROC指标衡量识别性能
- 基于Bi-LSTM深度学习网络的遥感数据分类matlab仿真
- 基于LSTM-RNN的深度学习网络的训练对比matlab仿真
- m基于简化后的轻量级yolov4深度学习网络农作物检测算法matlab仿真
- MATLAB | 绘图复刻(六) | 分组环形热图
- Matlab使用笔记(九):matlab实现交通流仿真/车感知/城市交通交叉路口
- Matlab R2018a无法重新加载 /usr/local/MATLAB/R2018a/bin/glnxa64/libmwxcp_dwarf.so
- 基于LEACH的随机网络生成无线传感器网络路由协议的仿真比较(Matlab代码实现)
- 【信号处理】MIMO信道容量(Matlab代码实现)
- 【三维重建】之 matlab读取 .wrl 三维图像文件
- Matlab使用笔记(九):matlab实现交通流仿真/车感知/城市交通交叉路口
- MATLAB入门之窗口程序-简易计算器