1 简介

介绍概率神经网络(PNN)的模型和基本算法,以及利用M atlab神经网络工具箱设计PNN网络的方法和步骤,实现对网络的设计,训练,仿真.针对不同叶子实验数据,应用PNN的分类功能对实验数据进行训练仿真处理,得到对各种叶子的预测分类结果,验证了此方法的可靠性.

2 部分代码

%% 清空环境变量
clc;
clear all
close all
nntwarn off;
warning off;

%% 训练数据预测数据提取及归一化

%下载五类叶片特征参数
load shu1 h1                 %女贞
load shu2 h2                 %银杏
load shu3 h3                 %五角枫 
load shu4 h4                 %杨树
load shu5 h5                 %石楠

%五个特征参数矩阵合成一个矩阵
data(1:30,:)=h1(1:30,:);
data(31:60,:)=h2(1:30,:);
data(61:90,:)=h3(1:30,:);
data(91:120,:)=h4(1:30,:);
data(121:150,:)=h5(1:30,:);

%% 测试数据预测数据提取及归一化
load cece1 g1                 %女贞
load cece2 g2                 %银杏
load cece3 g3                 %五角枫
load cece4 g4                 %杨树
load cece5 g5                 %石楠

%五个特征参数矩阵合成一个矩阵
test(1:12,:)=g1(1:12,:);
test(13:24,:)=g2(1:12,:);
test(25:36,:)=g3(1:12,:);
test(37:48,:)=g4(1:12,:);
test(49:60,:)=g5(1:12,:);
%% 选取训练数据和测试数据
p_train1=data(:,2:16)';
[p_train,inputps]=mapminmax(p_train1);
t_train=data(:,1)';
p_test1=test(:,2:16)';
p_test=mapminmax('apply',p_test1,inputps);
t_test=test(:,1)';


%% 将期望类别转换为向量

%% 通过作图 观察网络对训练数据分类效果
figure(1)
subplot(1,2,1)
plot(1:length(Yc),Yc,'bo')
hold on
plot(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;
plot(H)
title('PNN网络训练后的误差图')
xlabel('样本编号')


%% 网络预测未知数据效果
Y2=sim(net,p_test);
Y2c=vec2ind(Y2);
figure(2)
plot(1:length(Y2c),Y2c,'b^')
hold on
plot(1:length(Y2c),t_test,'r*')
title('PNN网络的预测效果')
xlabel('预测样本编号')
ylabel('分类结果')
set(gca,'Ytick',[1:5])

%%识别正确率
percent1=length(find(H==0))/length(H)
B=Y2c-t_test;
percent2=length(find(B==0))/length(B)

3 仿真结果

【预测模型-PNN分类别】基于PNN神经网络树叶类别Matlab代码_归一化

【预测模型-PNN分类别】基于PNN神经网络树叶类别Matlab代码_归一化_02

【预测模型-PNN分类别】基于PNN神经网络树叶类别Matlab代码_数据_03

4 参考文献

[1]鞠林波. (2012). 基于pnn神经网络的多属性预测密度曲线方法. 国外测井技术(3), 4.

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

【预测模型-PNN分类别】基于PNN神经网络树叶类别Matlab代码_神经网络_04