【BP分类】基于果蝇算法优化BP神经网络实现数据分类matlab代码

1 简介

为有效提高风电机组齿轮箱故障诊断的快速性和准确性,采用近几年出现的果蝇算法对BP神经网络进行优化,减少了BP神经网络算法陷入局部最优解的风险,显著增强了BP神经网络的泛化能力和全局寻优能力.对比发现,果蝇算法优化后的BP神经网络模型具有比较好的快速性和准确的诊断能力.测试结果表明,果蝇算法优化BP神经网络对风机齿轮箱故障诊断具有可行性和有效性.

【BP分类】基于果蝇算法优化BP神经网络实现数据分类matlab代码_第1张图片

【BP分类】基于果蝇算法优化BP神经网络实现数据分类matlab代码_第2张图片

2 部分代码

%% FOA封装程序clc;clear allclose all%% 初始化参数maxgen=100; %最大迭代次数sizepop=50;dim=2;L=1;%% 初始化矩阵X_best=zeros(maxgen,dim);Y_best=zeros(maxgen,dim);Smell_best=zeros(1,maxgen);%% 初始化果蝇坐标;X_axis=10*rand(1,dim);Y_axis=10*rand(1,dim);%% 生成果蝇群[Si,X,Y]=gengrate_foa(X_axis,Y_axis,sizepop,dim,L);%% 寻找最优个体[BestSmell,Index]=find_Schaffer(Si);SmellBest=BestSmell;               %SmellBest为全局最优%% 取出最优个体的两个维度的X,Y坐标X_axis=X(Index,:);Y_axis=Y(Index,:);for g=1:maxgen    %% 生成果蝇群    [Si,X,Y]=gengrate_foa(X_axis,Y_axis,sizepop,dim,L);    %% 寻找最优个体    [BestSmell,Index]=find_Schaffer(Si);    if BestSmell        X_axis=X(Index,:);        Y_axis=Y(Index,:);            %更新极值        SmellBest=BestSmell;            end    Smell_best(g)=SmellBest;    X_best(g,:)=X_axis;    Y_best(g,:)=Y_axis;end%% 输出最终值SmellBest%% 绘制图像figure(1)plot(Smell_best,'b');title('最佳个体适应度值变化趋势')xlabel('迭代次数')ylabel('适应度值')img =gcf;  %获取当前画图的句柄print(img, '-dpng', '-r600', './img.png')         %即可得到对应格式和期望dpi的图像

3 仿真结果

【BP分类】基于果蝇算法优化BP神经网络实现数据分类matlab代码_第3张图片

4 参考文献

[1]祁丽婉, 梁庚, 童国炜. 基于果蝇算法优化BP神经网络的齿轮箱故障诊断[J]. 电网与清洁能源, 2014(9):7.

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

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

你可能感兴趣的:(神经网络预测,算法,matlab,神经网络)