📄 matlab两段自组织神经网络设计实例.txt
字号:
两段自组织神经网络设计实例2007/06/02 22:14两段自组织神经网络设计实例: % 利用一维自组织网络对样本数据进行分类
%
close all
clf reset
figure(gcf);
echo on
clc
% NEWSOM 创建自组织网络
% TRAIN 对自组织网络进行训练
% SIM 对自组织网络进行仿真
pause
clc
% 产生样本数据 P
angles=0:0.5*pi/99:0.5*pi;
P=[cos(angles);sin(angles)];
pause
clc
% 画第一幅图:样本数据分布图
plot(P(1,:),P(2,:),'*');
axis([0 1 0 1]);
title('Input data');
pause
clc
% 建立自组织网络
% 欲将样本数据分为9类,因此网络的竞争层由9个神经元构成
net=newsom([0 1;0 1],[9]);
pause
clc
% 对网络进行训练
net.trainParam.epochs=10;
net=train(net,P);
pause
clc
% 画第二幅图:画出网络神经元权值,也就是每类样本数据的聚类中心
figure;
w=net.IW{1};
plotsom(net.IW{1,1},net.layers{1}.distances);
pause
clc
% 利用一组新的输入数据检验网络性能
a=sim(net,[0.6;0.8])
echo off% 利用二维自组织网络对样本数据进行非类
%
close all
clf reset
figure(gcf);
echo on
clc
% NEWSOM 创建自组织网络
% TRAIN 对自组织网络进行训练
% SIM 对自组织网络进行仿真
pause
clc
% 随机产生样本数据 P
P=rands(2,500);
pause
clc
% 画第一幅图:样本数据分布图
plot(P(1,:),P(2,:),'*');
axis([-1.2 1.2 -1.2 1.2]);
title('Input data');
pause
clc
% 建立自组织网络
% 欲将样本数据分为20类,因此网络的竞争层由20个二维分布的神经元构成
net=newsom([-1 1;-1 1],[4 5]);
pause
clc
% 画第二幅图:神经元分布的拓扑结构图
figure;
plotsom(net.layers{1}.positions);
pause
clc
% 画第三幅图:网络初始状态下神经元权值的分布图
figure;
plotsom(net.IW{1,1},net.layers{1}.distances);
pause
clc
% 对网络进行训练
net.trainParam.epochs=1;
net=train(net,P);
pause
clc
% 画第四幅图:画出网络神经元权值,也就是每类样本数据的聚类中心
figure;
plotsom(net.IW{1,1},net.layers{1}.distances);
pause
clc
% 画第五幅图:画出再次训练后的神经元权值
net.trainParam.epochs=3;
net=train(net,P);
figure;
plotsom(net.IW{1,1},net.layers{1}.distances);
pause
clc
% 利用一组新的输入数据检验网络性能
a=sim(net,[0.1;-0.5])
echo off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -