Kohonen网络matlab算法.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
%% data 为4500*39数据 %% 清空环境变量 clc clear %% 数据处理 load data input=datatrain(:,1:38); attackkind=datatrain(:,39); %数据归一化 inputn=input; [nn,mm]=size(inputn); [b,c]=sort(rand(1,nn)); %网络期望输出 for i=1:nn switch attackkind(i) case 1 output(i,:)=[1 0 0 0 0]; case 2 output(i,:)=[0 1 0 0 0]; case 3 output(i,:)=[0 0 1 0 0]; case 4 output(i,:)=[0 0 0 1 0]; case 5 output(i,:)=[0 0 0 0 1]; end end %训练数据 input_train=inputn(c(1:4000),:); output_train=output(c(1:4000),:); %% 网络构建 %输入层节点数 Inum=38; %Kohonen网络 M=6; N=6; K=M*N;%Kohonen总节点数 g=5; %输出层节点数 %Kohonen层节点排序 k=1; for i=1:M for j=1:N jdpx(k,:)=[i,j]; k=k+1; end end %学习率 rate1max=0.1; rate1min=0.01; rate2max=1; rate2min=0.5; %学习半径 r1max=1.5; r1min=0.4; %权值初始化 w1=rand(Inum,K); %第一层权值 w2=zeros(K,g); %第二层权值 %% 迭代求解 maxgen=10000; for i=1:maxgen %自适应学习率和相应半径 rate1=rate1max-i/maxgen*(rate1max-rate1min); rate2=rate2min+i/maxgen*(rate2max-rate2min); r=r1max-i/maxgen*(r1max-r1min); %从数据中随机抽取 k=unidrnd(4000); x=input_train(k,:); y=output_train(k,:); %计算最优节点 [mindist,index]=min(dist(x,w1)); %计算周围节点 d1=ceil(index/6); d2=mod(index,6); nodeindex=find(dist([d1 d2],jdpx)=r); %权值更新 for j=1:length(nodeindex) w1(:,nodeindex(j))=w1(:,nodeindex(j))+rate1*(x-w1(:,nodeindex(j))); w2(nodeindex(j),:)=w2(nodeindex(j),:)+rate2*(y-w2(nodeindex(j),:)); end end %% 聚类结果 Index=[]; for i=1:4000 [mindist,index]=min(dist(inputn(i,:),w1)); Index=[Index,index]; end inputn_test=datatest(:,1:38); %样本验证 for i=1:500 x=inputn_test(i,:); %计算最小距离节点 [mindist,index]=min(dist(x,w1)); [a,b]=max(w2(index,:)); outputfore(i)=b; end length(find((datatest(:,39)-outputfore)==0)) plot(outputfore,linewidth,1.5) hold on plot(datatest(:,39),:r,linewidth,1.5) title(网络分类,fontsize,12) xlabel(数据样本,fontsiz

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档