首页 > 行业资讯 > 【BP分类】基于花朵授粉算法优化BP神经网络实现数据分类附matlab代码

【BP分类】基于花朵授粉算法优化BP神经网络实现数据分类附matlab代码

时间:2022-05-31 来源: 浏览:

【BP分类】基于花朵授粉算法优化BP神经网络实现数据分类附matlab代码

天天Matlab 天天Matlab
天天Matlab

TT_Matlab

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,完整matlab代码或者程序定制加qq1575304183。

收录于合集 #神经网络预测matlab源码 284个

1 简介

为了提高分类的准确性,降低因预测精度不高带来的电能损失,提出将花朵授粉算法(flower pollination algorithm,FPA)与BP神经网络相结合,利用FPA算法具有收敛速度快,全局搜索能力强的特点,对BP神经网络的权值和阈值进行优化,改善传统BP神经网络因权值和阈值的选择具有随机性而陷入局部最优和收敛速度慢的缺点.最后,通过某地区实际负荷数据验证了优化后的BP神经网络的预测精度得到了提高.

2 部分代码

%%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% % %%% Flower Pollination Algorithm for Multimodal Optimization (MFPA) %Jorge G醠vez, Erik Cuevas and Omar Avalos %%This is the line to execute the code: % %[mem,bestSol,bestFit,optima,FunctionCalls] =FPA([ 50 0 . 25 500 2 ]); %FitFunc implements the function to be optimized %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% %%% % function [mem,bestSol,bestFit,optima,FunctionCalls]=FPA(para) % Default parameters if nargin< 1 , para=[ 50 0 . 25 500 ]; end n=para( 1 ); % Population size p=para( 2 ); % Probabibility switch N_iter=para ( 3 ); % Number of iterations phase = 1 ; %First state phaseIte= [ 0 . 5 , 0 . 9 , 1.01 ]; %State vector %Deb Function d = 1 ; Lb = 0 ; Ub = 1 ; optima = [. 1 ;. 3 ;. 5 ;. 7 ;. 9 ]; % Initialize the population for i= 1 :n , Sol(i, : )=Lb+(Ub-Lb).*rand( 1 ,d); Fitness(i)=fitFunc(Sol(i, : )); %%Evaluate fitness function end % Initialice the memory [mem,bestSol,bestFit,worstF] = memUpdate(Sol,Fitness, [], zeros( 1 ,d), 100000000 , 0 , phase,d,Ub,Lb); S = Sol; FunctionCalls = 0 ; % Main Loop for ite = 1 : N_iter, %For each pollen gamete, modify each position acoording %to local or global pollination for i = 1 : n, % Switch probability if rand>p, L=Levy(d); dS=L.*(Sol(i, : )-bestSol); S(i, : )=Sol(i, : )+dS; S(i, : )=simplebounds(S(i, : ),Lb,Ub); else epsilon=rand; % Find random flowers in the neighbourhood JK=randperm(n); % As they are random, the first two entries also random % If the flower are the same or similar species, then % they can be pollenated, otherwise, no action. % Formula: x_i^{t+ 1 }+epsilon*(x_j^t-x_k^t) S(i, : )=S(i, : )+epsilon*(Sol(JK( 1 ), : )-Sol(JK( 2 ), : )); % Check if the simple limits/bounds are OK S(i, : )=simplebounds(S(i, : ),Lb,Ub); end Fitness(i)=fitFunc(S(i, : )); end %Update the memory [mem,bestSol,bestFit,worstF] = memUpdate(S,Fitness,mem,bestSol,bestFit,worstF,phase,d,Ub,Lb); Sol = get_best_nest(S, mem, p); FunctionCalls = FunctionCalls + n; if ite/N_iter > phaseIte(phase) %Next evolutionary process stage phase = phase + 1 ; [m,~]=size(mem); %Depurate the memory for each stage mem = cleanMemory(mem); FunctionCalls = FunctionCalls + m; end end %Plot the solutions (mem) founded by the multimodal framework x = 0 : . 01 : 1 ; y = ((sin( 5 .*pi.*x)).^ 6 ); plot(x,y) hold on plot(mem( : , 1 ),-mem( : , 2 ), ’r*’ );

3 仿真结果

4 参考文献

[1]牛庆、曹爱民、陈潇一、周冬. 基于花朵授粉算法和BP神经网络的短期负荷预测[J]. 电网与清洁能源, 2020, 36(10):5.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

5 代码下载

版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。
相关推荐