主要内容
《MATLAB神经网络43个案例分析》共有43章,内容涵盖常见的神经网络(BP、RBF、SOM、Hopfield、Elman、LVQ、Kohonen、GRNN、NARX等)以及相关智能算法(SVM、决策树、随机森林、极限学习机等)。同时,部分章节也涉及了常见的优化算法(遗传算法、蚁群算法等)与神经网络的结合问题。此外,《MATLAB神经网络43个案例分析》还介绍了MATLAB R2012b中神经网络工具箱的新增功能与特性,如神经网络并行计算、定制神经网络、神经网络高效编程等。
本程序针对的是第24章内容--基于PNN的变压器故障诊断,这是神经网络技术在电力系统故障诊断方面的一个应用方向,通过对变压器运行数据进行训练,实现对数据的分类和预测,用于判断变压器运行状态,代码免费分享给大家学习参考!
部分代码
%% 清空环境变量 clc; clear all close all nntwarn off; warning off; %% 数据载入 load data %% 选取训练数据和测试数据 Train=data(1:23,:); Test=data(24:end,:); p_train=Train(:,1:3)'; t_train=Train(:,4)'; p_test=Test(:,1:3)'; t_test=Test(:,4)'; %% 将期望类别转换为向量 t_train=ind2vec(t_train); t_train_temp=Train(:,4)'; %% 使用newpnn函数建立PNN SPREAD选取为1.5 Spread=1.5; net=newpnn(p_train,t_train,Spread) %% 训练数据回代 查看网络的分类效果 % Sim函数进行网络预测 Y=sim(net,p_train); % 将网络输出向量转换为指针 Yc=vec2ind(Y); %% 通过作图 观察网络对训练数据分类效果 figure(1) subplot(1,2,1) stem(1:length(Yc),Yc,'bo') hold on stem(1:length(Yc),t_train_temp,'r*') title('PNN 网络训练后的效果') xlabel('样本编号') ylabel('分类结果') set(gca,'Ytick',[1:5]) subplot(1,2,2) H=Yc-t_train_temp; stem(H) title('PNN 网络训练后的误差图') xlabel('样本编号') %% 网络预测未知数据效果 Y2=sim(net,p_test); Y2c=vec2ind(Y2); figure(2) stem(1:length(Y2c),Y2c,'b^') hold on stem(1:length(Y2c),t_test,'r*') title('PNN 网络的预测效果') xlabel('预测样本编号') ylabel('分类结果') set(gca,'Ytick',[1:5])
结果一览