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

📄 neuralnetwork_rbf_classification.m

📁 % RBF 神经网络用于模式分类 % 使用平台 - Matlab6.5
💻 M
字号:
% RBF 神经网络用于模式分类
% 使用平台 - Matlab6.5
% 作者:陆振波,海军工程大学
% 欢迎同行来信交流与合作,更多文章与程序下载请访问我的个人主页
% 电子邮件:luzhenbo@yahoo.com.cn
% 个人主页:http://luzhenbo.88uu.com.cn


clc
clear
close all

%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本

n1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
x1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

n2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2];
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;           % 测试目标

%---------------------------------------------------
% 训练与测试

switch 3
case 1
        
% 神经元数是训练样本个数
P = xn_train;
T = dn_train;
spread = 40;                % 此值越大,覆盖的函数值就大(默认为1)
net = newrbe(P,T,spread);

case 2
    
% 神经元数逐步增加,最多就是训练样本个数
P = xn_train;
T = dn_train;
goal = 1e-8;               % 训练误差的平方和(默认为0)
spread = 40;                % 此值越大,需要的神经元就越少(默认为1)
MN = size(xn_train,2);      % 最大神经元数(默认为训练样本个数)
DF = 1;                     % 显示间隔(默认为25)
net = newrb(P,T,goal,spread,MN,DF);

case 3
    
P = xn_train;
T = dn_train;
spread = 0.5;                % 此值越大,需要的神经元就越少(默认为1)
net = newgrnn(P,T,spread);
    
end

X = sim(net,xn_test);                   % 测试 - 输出为预测值
X = full(compet(X))                     % 竞争输出

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

Result = ~sum(abs(X-x2))               % 正确分类显示为1
Percent = sum(Result)/length(Result)   % 正确分类率

⌨️ 快捷键说明

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