毕业论文要用Matlab的SOM算法进行聚类分析,要求经过训练后计算出一批数据的学习率和分类正确率,我把收集的数据保存在excel中,共6078行,80列,急求一段SOM程序,如可在Matlab上运行,小女子感激不尽!
补充:老师给了我一段算法让我修改,但我从没接触过SOM,觉得无从下手,请高手帮我修改,错误总是提示:
??? Subscript indices must either be real positive integers or logicals.
Error in ==> newsom at 52
v51 = (numArgs > 6) || ...
看不懂。
该程序是:
load datanew;
net=newsom(minmax(P),[4 4],'hextop','',0.9);
a=[1000 1200 1500];//选择训练次数比较结果
yc=rands(1,10);
for i=1:3//分类训练
net.trainParam.epochs=a(i);
net=train(net,P);
y=sim(net,P);
yc=vec2ind(y)
end
M=[P;yc];
[b,pos]=sort(M(5,:));
c=M(:,pos);//保存需要的结果行
c(5,:)=[];