基于遗传优化的双BP神经网络金融序列预测算法matlab仿真

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。

1.程序功能描述
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真,采用的双BP神经网络结构如下:

c6d552767681409074e2f9062edf9d23_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.测试软件版本以及运行结果展示
MATLAB2022A版本运行

三个算法的误差对比:
2.jpeg
3.jpeg
4.jpeg

3.核心程序
```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 = 60;
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)
save r2.mat d1 d2

```

4.本算法原理
整个BP算法的整体结构如下所示:

0a2bd17cc2859df88bc6ac81aca95481_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

首先看下传统的遗传算法,遗传算法优化的过程如下所示:

1.选择问题解的一个编码,给出一个有N个染色体的初始群体pop(1),t=1。

2.对群体中的每一个染色体 ,计算它的适应函数值f(xi)。

3.若停止规则满足,则算法停止,否则计算概率P,并以此概率分布,从pop(t)中随机选取N个染色体构成一个新的种群newpop(t)。

4.通过交叉(交叉概率为),得到N个染色体的crosspop(t+1)。

5.以较小的变异概率 ,使得某染色体的一个基因发生变异,形成新的群体mutpop(t+1)。 令t=t+1,pop(t)=mutpop(t),重复第(2)步。

其详细步骤如下:

b2591550cb842b46a137f50466680bcb_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

  这里,通过设置两个BP神经网络的方法来实现预测功能,一个神经网络的初始学习率设置较大,一个神经网络的初始学习率设置较小,两个神经网络的误差分别为e1,e2,最后得到的结果按如下公式计算:

63d1f4043aef5a8687f40e571549ef28_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

相关文章
|
28天前
|
机器学习/深度学习 运维 算法
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
169 0
基于非支配排序遗传算法NSGAII的综合能源优化调度(Matlab代码实现)
|
23天前
|
传感器 机器学习/深度学习 算法
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
【UASNs、AUV】无人机自主水下传感网络中遗传算法的路径规划问题研究(Matlab代码实现)
|
17天前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
|
27天前
|
负载均衡 算法 调度
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)
112 11
|
1月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
27天前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
233 17
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
189 10
|
10月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
10月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
202 10