【BP预测】基于粒子群算法优化的BP神经网络预测模型附Matlab代码

简介: 【BP预测】基于粒子群算法优化的BP神经网络预测模型附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机

⛄ 内容介绍

针对于BP神经网络预测模型,收敛速度慢,精度较低,容易陷入局部极小值等缺点,提出了一种粒子群优化BP神经网络预测模型的算法.在该算法中,粒子群优化BP神经网络预测模型的初始权值和阈值,然后训练BP神经网络预测模型并预测.将该算法应用到几个典型的混沌时间序列预测.实验结果表明,该算法明显提高BP神经网络预测模型的收敛速度和预测模型的精度,减少陷入局部极小的可能.

1.1 BP神经网络

1.2 粒子群算法

⛄ 部分代码

%% PSO-BP神经网络

%% 清空环境

clearall;

closeall;

clc;

data=xlsread('Test.xlsx','Sheet1','A2:G46');%读取数据

[M,NN]=size(data);%M是样本数,N是变量数

inputn=data(:,1:NN-1)';%训练样本输入

outputn=data(:,NN)';%训练样本输出

%节点个数

inputnum=NN-1;%输入个数

hiddennum=12;%隐藏层

outputnum=1;%输出个数

%构建网络

net=newff(inputn,outputn,hiddennum);

tic

%% 粒子群

numWolf=60;

limit = [-10, 10;];                % 设置位置参数限制(矩阵的形式可以多维)

vlimit = [-0.01, 0.01;];               % 设置速度限制

c_1 = 0.8;                        % 惯性权重

c_2 = 0.5;                       % 自我学习因子

c_3 = 0.5;                       % 群体学习因子

N=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum;

x = zeros(numWolf,N);

% 初始化种群

fori = 1:numWolf

  x(i,:)=rands(1,N);

%     fitness(i)=fun(x(i,:),inputnum,hiddennum,outputnum,net,inputn,outputn);

end

% [xm,LeadWolf] = min(fitness);

% ym = x(LeadWolf,:);

% globalMin = xm;

v = 0.1*rand(numWolf,N);                  % 初始种群的速度

xm = x;                          % 每个个体的历史最佳位置

ym = zeros(1, N);                % 种群的历史最佳位置

fxm = 100000*ones(numWolf, 1);               % 每个个体的历史最佳适应度

fym = 100000;                      % 种群历史最佳适应度

%% 粒子群工作

iter = 1;


end


time = toc;

disp(['用时= ',num2str(time)])

X=ym;



%% BP网络训练

%网络进化参数

net.trainParam.epochs=2000;%bp神经网络的代数

net.trainParam.lr=0.1;

%net.trainParam.goal=0.00001;


%网络训练

[net,per2]=train(net,inputn,outputn);

%% BP网络预测

% load data inputn_test output_test

inputn_test=inputn;%测试数据输入

output_test=outputn;%测试数据输出

an=sim(net,inputn_test);%预测

error=(an-output_test);%误差

error_xiangdui=(an-output_test)./output_test;%相对误差

figure(1)

plot(error_xiangdui,'ko-')

ylabel('相对误差值')

title('粒子群优化BP神经网络')

figure(2)

plot(error,'ro-')

ylabel('误差值')

title('粒子群优化BP神经网络')

figure(3)

plot(output_test,'r + -');

holdon;

plot(an,'b * -')

holdoff

legend('真实值','预测值');

title('粒子群优化BP神经网络')

figure(4)

plot( record)

xlabel('迭代次数')

ylabel('均方差值')

⛄ 运行结果

⛄ 参考文献

[1]卢辉斌, 李丹丹, 孙海艳. PSO优化BP神经网络的混沌时间序列预测[J]. 计算机工程与应用, 2015, 51(2):224-229.

❤️ 关注我领取海量matlab电子书和数学建模资料
❤️部分理论引用网络文献,若有侵权联系博主删除


相关文章
|
2月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
174 8
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
166 8
|
3月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
377 0
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
236 2
|
2月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
320 0
|
3月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
|
3月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
440 1
|
3月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
235 7
|
3月前
|
机器学习/深度学习 传感器 分布式计算
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
基于模糊RBF神经网络轨迹跟踪研究(Matlab代码实现)
211 1
|
3月前
|
机器学习/深度学习 移动开发 编解码
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
基于人工神经网络的类噪声环境声音声学识别(Matlab代码实现)
120 1

热门文章

最新文章