资源简介
直接可用的SOM聚类matlab代码
代码片段和文件信息
%% 清空环境变量
clc
clear all
%% 录入输入数据
% 载入数据
P=[0.0 0.04 0.87
0.0 0.38 0.61
0.0 2.66 0.77
0.0 1.76 7.28
1.1888 0.2 7.94
0.12 1.16 16.82
3.95 0.43 4.18
4.11 4.4 5.59
0.242 0.1699 1.8452
0.0195 1.247 10.2286
1.1888 0.2 7.944
0.005 7.1233 8.5714
0.0 0.8125 19.7931
0.0 0.8125 2.9091
0.0065 1.0 2.5455
0.0 1.3509 0.3621
0.0 0.1646 1.3824
0.0541 1.2551 8.9697
0.0763 0.8333 9.3
0.0738 0.2509 0.2571
0.0 0.815 0.5882
0.0 1.4475 2.5143
0.0464 1.9323 4.6992
0.4166 0.3891 12.4648
0.0075 5.1071 9.6667
0.005 7.1233 8.5714
0.0 2.3095 3.8217
0.0 14.8125 5.1087
0.0804 1.2719 5.1111
0.0 0.0594 1.3824];
%% 网络建立和训练
% newsom建立SOM网络。minmax(P)取输入的最大最小值。竞争层为6*6=36个神经元
net=newsom(minmax(P)[45]);
plotsom(net.layers{1}.positions)
% 5次训练的步数
a=[10 30 50 100 200 500 1000];
% 随机初始化一个1*10向量。
yc=rands(78);
%% 进行训练
% 训练次数为10次
net.trainparam.epochs=a(1);
% 训练网络和查看分类
net=train(netP);
y=sim(netP);
yc=vec2ind(y);
plotsom(net.IW{11}net.layers{1}.distances)
% 训练次数为30次
net.trainparam.epochs=a(2);
% 训练网络和查看分类
net=train(netP);
y=sim(netP);
yc(2:)=vec2ind(y);
plotsom(net.IW{11}net.layers{1}.distances)
% 训练次数为50次
net.trainparam.epochs=a(3);
% 训练网络和查看分类
net=train(netP);
y=sim(netP);
yc(3:)=vec2ind(y);
plotsom(net.IW{11}net.layers{1}.di
评论
共有 条评论