⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bp.m

📁 模式识别-神经网络bp算法用于模式分类
💻 M
字号:
% BP网络用于模式分类
% 使用平台 - Matlab7.0
% 作者:郑黎方   S200502106   
% 北京工业大学电控学院


clc  
clear  
close all  
%-----------------------------------------------------
fprintf('-------------------BP网络用于模式分类-------------------\n')
fprintf('输入节点数3(样本特征维数3),隐含层节点数20,输出节点数3(分为3类)\n');
%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本
fprintf('随机产生训练样本(15组):\n');
n1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]
fprintf('期望输出(按列看,所在类别为1,其他为0):\n');
x1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)]
fprintf('随机产生测试样本(15组):\n');
n2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]
fprintf('测试样本期望输出:\n');
x2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)]

xn_train = n1;          % 训练样本
dn_train = x1;          % 训练目标

xn_test = n2;           % 测试样本
dn_test = x2;           % 测试目标

%---------------------------------------------------
% 函数接口赋值

NodeNum = 20;           % 隐层节点数 
TypeNum = 3;            % 输出维数
p1 = xn_train;          % 训练输入
t1 = dn_train;          % 训练输出
Epochs = 1000;          % 训练次数

P = xn_test;            % 测试输入 
T = dn_test;            % 测试输出(真实值)

%---------------------------------------------------
% 设置网络参数
TF1 = 'logsig';TF2 = 'purelin';

net = newff(minmax(p1),[NodeNum TypeNum],{TF1 TF2},'trainlm');

net.trainParam.epochs = Epochs;     % 最大训练次数
net.trainParam.goal = 1e-8;         % 最小均方误差
net.trainParam.min_grad = 1e-20;    % 最小梯度
net.trainParam.show = 200;          % 训练显示间隔
net.trainParam.time = inf;          % 最大训练时间

%---------------------------------------------------
% 训练与测试
fprintf('开始训练......\n');
net = train(net,p1,t1);             % 训练
fprintf('开始测试......\n');
X = sim(net,P);                     % 测试 - 输出为预测值
fprintf('网络的实际输出结果显示:\n');
X = full(compet(X))                 % 竞争输出

%---------------------------------------------------
% 结果统计

fprintf('测试样本正确分类的显示为1,错误为0:\n');
Result = ~sum(abs(X-x2))               % 正确分类显示为1
Percent = sum(Result)/length(Result);   % 正确分类率
fprintf('正确分类率:%f\n',Percent);




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -