📄 pigefenleinn.m
字号:
clc
clear
close all
%---------------------------------------------------
% 产生训练样本与测试样本,每一列为一个样本
n1=[ 0.0960 0.3424 0.0000 0.0087 0.0342
0.0000 0.3021 0.1283 0.0477 0.0502
0.0593 0.3927 0.1742 0.0000 0.0000
0.0410 0.5035 0.1375 0.0188 0.0274
0.1134 0.6254 0.9248 0.0882 0.1324
0.2669 0.5539 0.8735 0.0520 0.1324
0.1751 0.6203 1.0000 0.0809 0.1575
0.1640 0.6354 0.8552 0.0347 0.0251
0.1675 0.5962 0.6453 0.0303 0.0114
0.1869 0.7533 0.7131 0.0188 0.1301
0.2855 0.6626 0.5573 0.2254 0.1347
0.2712 0.8661 0.6884 0.1936 0.1507
0.4376 0.8560 0.6627 0.2977 0.3584
0.5206 0.8469 0.6150 0.0506 0.3790
0.4267 1.0000 0.7003 0.2514 0.2580
0.8288 0.7664 0.7406 0.7153 0.4863
0.6695 0.7644 0.6719 0.7023 0.4087
0.5316 0.5851 0.6425 0.4841 0.3539
1.0000 0.0604 0.4216 0.7254 1.0000
1.0000 0.0302 0.4125 0.8121 0.5639
0.8432 0.0806 0.2933 0.5809 0.3014
0.8065 0.0000 0.3300 1.0000 0.8014]';
x1 = [repmat([1;0;0;0;0],1,4),repmat([0;1;0;0;0],1,4),repmat([0;0;1;0;0],1,4),...
repmat([0;0;0;1;0],1,6),repmat([0;0;0;0;1],1,4)];
n2=[ 0.0234 0.5122 0.0000 0.0393 0.1549
0.0000 0.4738 0.0367 0.0145 0.1127
0.1333 0.7823 0.9450 0.0642 0.1643
0.0471 0.8464 1.0000 0.0000 0.0000
0.1585 0.8182 0.8093 0.0807 0.1737
0.2879 0.8169 0.5477 0.3375 0.3897
0.2590 1.0000 0.7824 0.0994 0.5634
0.6308 0.5339 0.4584 1.0000 1.0000
0.8372 0.7465 0.7176 0.9296 0.9061
1.0000 0.0000 0.3790 0.7019 0.8826]';
x2 =[repmat([1;0;0;0;0],1,2),repmat([0;1;0;0;0],1,2),repmat([0;0;1;0;0],1,3),...
repmat([0;0;0;1;0],1,2),repmat([0;0;0;0;1],1,1)];
xn_train = n1; % 训练样本
dn_train = x1; % 训练目标
xn_test = n2; % 测试样本
dn_test = x2; % 测试目标
%---------------------------------------------------
% 函数接口赋值
NodeNum = 10; % 隐层节点数
TypeNum = 5; % 输出维数
p1 = xn_train; % 训练输入
t1 = dn_train; % 训练输出
Epochs = 500; % 训练次数
P = xn_test; % 测试输入
T = dn_test; % 测试输出(真实值)
%---------------------------------------------------
% 设置网络参数
%TF1 = 'tansig';TF2 = 'purelin'; % 缺省值
%TF1 = 'tansig';TF2 = 'logsig';
%TF1 = 'logsig';TF2 = 'purelin';
TF1 = 'tansig';TF2 = 'tansig';
%TF1 = 'logsig';TF2 = 'logsig';
%TF1 = 'purelin';TF2 = 'purelin';
net = newff(minmax(p1),[NodeNum TypeNum],{TF1 TF2},'traincgb');
% 指定训练参数
%net.trainFcn = 'trainlm'; % 内存使用最多(快)
%net.trainFcn = 'trainbfg';
%net.trainFcn = 'trainrp'; % 内存使用最少(慢)
%net.trainFcn = 'traingda'; % 变学习率
%net.trainFcn = 'traingdx';
net.trainParam.epochs = 500; % 最大训练次数
net.trainParam.goal = 1e-9; % 最小均方误差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.show = 200; % 训练显示间隔
net.trainParam.time = inf; % 最大训练时间
%---------------------------------------------------
% 训练与测试
net = train(net,p1,t1); % 训练
X = sim(net,P); % 测试 - 输出为预测值
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 + -