資源簡介
直接可用的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
評論
共有 條評論