FNN回归预测基于matlab蝙蝠算法优化前馈神经网络数据回归预测含Matlab源码 2070期
Posted 海神之光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FNN回归预测基于matlab蝙蝠算法优化前馈神经网络数据回归预测含Matlab源码 2070期相关的知识,希望对你有一定的参考价值。
一、粒子群优化前馈神经网络简介
1 前馈神经网络FNN
前馈神经网络FNN是解决非线性问题的很好模型,它通过梯度下降算法进行网络训练。FNN与时间序列法等传统方法相比,能够更好地来描述问题的非线性特性;与支持向量机等智能方法相比,其网络结构简单,不需要人为选定惩罚因子和损失因子,结构可以人为设定,归纳性能更好更灵活。将BP神经网络引入到短期负荷预测中。将径向基函数(Radial Basis Function,RBF)神经网络引入到短期负荷预测中。将模糊神经网络引入到负荷预测中。它们都属于FNN,并且取得了很好的预测效果。虽然FNN应用广泛,结构简单,层次清晰,但是其缺陷却不可忽视。前馈神经网络采用传统的训练算法,极易陷入局部最小,并且训练时间长,其本质是静态网络,无法很好地表征系统的动态特性。
粒子群算法是一种基于群体智能行为的启发式随机搜索优化方法,于1995年由Kennedy和Eberhart提出。
2 标准粒子群算法
假设在D维搜索空间有一群体,其粒子数为m;xi=(xi1,xi2,…,xiD)为第i个粒子的位置;vi=(vi1,vi2,…,viD)为第i个粒子的飞行速度;Pi=(pi1,Pi2,…,piD)为第i个粒子经历过的最好位置,即个体适应度值最优;Pg=(pg1,pg2,…,pgD)为所有粒子经历过的最好位置,即群体适应度值最优。每次迭代粒子根据式(5)更新自己的速度和位置:
式中:w为惯性权重,取0.1~0.9;c1和c2为学习因子,一般均取2;r1和r2为[0,1]之间随机数。式(5)由3部分组成,第一部分为粒子之前的速度;第二部分为“认知”部分,代表粒子本身的思考,仅考虑自身的经验;第三部分为“社会”部分,代表着粒子之间的社会信息共享。
粒子在搜索过程中,速度和位置都有一定的限制,即vmin≤vi≤vmax,xmin≤xi≤xmax,如果超出,就取边界值。
二、部分源代码
clc;
% 生成随机相关数据
mu = 50;
sigma = 5;
M = mu + sigma * randn(300, 2);
R = [1, 0.75; 0.75, 1];
L = chol®;
M = M*L;
x = M(:,1); % 示例输入,替换为您自己的实验的数据输入
y = M(:,2);% 示例标签,替换为您自己的实验的数据标签
% 数据的最小-最大归一化
m = max(x); mn = min(x); mm = m-mn;
X = ((x-mn)/mm); Y = ((x-mn)/mm);
% 90%: 10% 的数据拆分用于训练和测试
sz = (ceil(size(X,1))*0.9);
inputs = (X(1:sz))’;
targets = (Y(1:sz))’;
XTest = (X(sz+1:end))’;
YTest = Y(sz+1:end)’;
% 神经元数量
n = 4;
tic;
% 创建一个神经网络
net = feedforwardnet(n);
% 为这个数据集配置神经网络
net = configure(net, inputs, targets);
% 非规范化和 FNN 预测
FNN_Pred = ((net(XTest))’ * mm) + mn;
%% BAT 算法
%问题定义
N = 20; %蝙蝠数量
Max_iter = 30; %最大迭代次数
fobj = @(x) NMSE(x, net, inputs, targets);
% 加载所选基准函数的详细信息
lb = -1; ub = 1;
dim = n^2 + n + n + 1;
[bestfit,x,fmax,BAT_Cg_curve]=newBAT(N,Max_iter,lb,ub,dim,fobj);
net = setwb(net, x’);
%BAT_FNN 的非规范化和预测
BAT_FNN_Pred = ((net(XTest))’ * mm) + mn;
YTest = (YTest * mm) + mn;
BAT_FNN_Execution_Time_Seconds = toc
%绘制预测结果
figure;
plot(YTest,‘LineWidth’,2, ‘Marker’,‘diamond’, ‘MarkerSize’,8);
hold on;
plot(FNN_Pred, ‘LineWidth’,2, ‘Marker’,‘x’, ‘MarkerSize’,8);
plot(BAT_FNN_Pred, ‘LineWidth’,2, ‘Marker’,‘pentagram’, ‘MarkerSize’,8);
title(‘基于BAT优化前馈神经网络’);
xlabel(‘时间间隔’);
ylabel(‘值’);
legend(‘实际值’, ‘FNN预测’, ‘BAT优化FNN预测’);
hold off;
% FNN和BAT-FNN的性能评估
三、运行结果
四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 孙景文,常鲜戎.基于高斯混沌粒子群优化动态前馈神经网络的短期负荷预测[J].陕西电力. 2015,43(09)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
以上是关于FNN回归预测基于matlab蝙蝠算法优化前馈神经网络数据回归预测含Matlab源码 2070期的主要内容,如果未能解决你的问题,请参考以下文章
FNN回归预测基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测含Matlab源码 2069期
FNN回归预测基于matlab粒子群优化前馈神经网络婚姻和离婚数据回归预测含Matlab源码 2069期
优化预测基于matlab蝙蝠算法优化BP神经网络预测含Matlab源码 1379期
优化预测基于matlab蝙蝠算法优化BP神经网络预测含Matlab源码 1379期