gusucode.com > 《MATLAB神经网络超级学习手册》随书光盘源码程序 > code/10/N10_8.m

    clc
clear

% 设定样本数据
m=9;
n=9;
P=rand(m,n);
for i=1:m
    for j=1:n
        if P(i,j)>0.8
            P(i,j)=1;
        else
            P(i,j)=0;
        end
    end
end

%转置后符合神经网络的输入格式
P=P';

%newsom建立SOM网络,竞争层为7*7=49个神经元
net=newsom(minmax(P),[6 6]);
plotsom(net.layers{1}.positions)

%5次训练的步数
a=[5 20 40 80 160 320 640 1280];
% 随机初始化一个向量
yc=rands(9,9);
 
% 训练次数为5次
net.trainparam.epochs=a(1);
%训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(1,:)=vec2ind(y);
figure(1)
subplot(2,2,1); 
plotsom(net.IW{1,1},net.layers{1}.distances)

% 训练次数为20次
net.trainparam.epochs=a(2);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(2,:)=vec2ind(y);
subplot(2,2,2); 
plotsom(net.IW{1,1},net.layers{1}.distances)

% 训练次数为40次
net.trainparam.epochs=a(3);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(3,:)=vec2ind(y);
subplot(2,2,3); 
plotsom(net.IW{1,1},net.layers{1}.distances)


% 训练次数为80次
net.trainparam.epochs=a(4);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(4,:)=vec2ind(y);
subplot(2,2,4); 
plotsom(net.IW{1,1},net.layers{1}.distances)


% 训练次数为160次
net.trainparam.epochs=a(5);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(5,:)=vec2ind(y);
figure(2) 
subplot(2,2,1); 
plotsom(net.IW{1,1},net.layers{1}.distances)

% 训练次数为320次
net.trainparam.epochs=a(6);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(6,:)=vec2ind(y);
subplot(2,2,2); 
plotsom(net.IW{1,1},net.layers{1}.distances)

% 训练次数为640次
net.trainparam.epochs=a(7);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(7,:)=vec2ind(y);
subplot(2,2,3); 
plotsom(net.IW{1,1},net.layers{1}.distances)

% 训练次数为1280次
net.trainparam.epochs=a(8);
% 训练网络和查看分类
net=train(net,P);
%仿真网络
y=sim(net,P);
yc(8,:)=vec2ind(y);
subplot(2,2,4); 
plotsom(net.IW{1,1},net.layers{1}.distances)


%网络作分类的预测
%测试样本输入
t=[0.8712 1.0000 0.1858 -0.1858 0.4918 0.7111 0.5345 0.7941 0.5941]';
%网络仿真
r=sim(net,t);
%将单值向量转变成下标向量。
rr=vec2ind(r)

%查看网络拓扑学结构
figure(3)
plotsomtop(net)
%查看临近神经元直接的距离情况
figure(4)
plotsomnd(net)
%查看每个神经元的分类情况
figure(5)
plotsomhits(net,P)