zl程序教程

您现在的位置是:首页 >  后端

当前栏目

【遗传优化BP网络】基于自适应遗传算法的BP神经网络的股票预测MATLAB仿真

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份完整源码