利用竞争层网络对样本数据进行分类

源代码在线查看: cop.m

软件大小: 2 K
上传用户: pore
关键词: 网络 样本 数据 分类
下载地址: 免注册下载 普通下载 VIP

相关代码

				%利用竞争层网络对样本数据进行分类
				range=[-1 1;-1 1];%样本数据取值范围
				class=3;%样本分为3类
				num=10;%每类样本取10个
				std=0.1;%每类样本数据的方差
				P=nngenc(range,class,num,std);%产生样本数据P,p中包括三类共10个二维矢量
				plot(P(1,:),P(2,:),'*','markersize',5);
				axis([-1.5 1.5 -1.5 1.5]);%绘制样本数据分布图
				clc
				klr=0.1;%权值学习速率
				clr=0.01;%阈值学习速率
				net=newc(range,class,klr,clr);%建立竞争层网络
				clc
				net.trainParam.epochs=5;%训练过程每5步显示一次
				net=train(net,P)
				clc
				w=net.IW{1};
				hold on;
				plot(w(:,1),w(:,2),'ob');%勾画竞争层神经元权值
				title('Input data &Weights');
				clc
				Y=sim(net,P);%利用原始样本数据对网络进行仿真
				Y1=vec2ind(Y);
				clc
				%用不同符号标注数据分类结果
				figure;
				for i=1:30
				    if Y1(i)==1
				        plot(P(1,i),P(2,i),'*','markersize',5);
				    elseif Y1(i)==2
				        plot(P(1,i),P(2,i),'+','markersize',5);
				    else
				        plot(P(1,i),P(2,i),'x','markersize',5);
				    end
				    hold on;
				end
				axis([-1.5 1.5 -1.5 1.5]);
				title('class1:*  class2:+  class3:x');
				clc
				%利用一组新的输入数据检验网络性能
				p=[-0.4 0.8;-0.1 0.9]
				y=sim(net,p);%利用输入样本数据对网络进行仿真
				y1=vec2ind(y)%将单位矢量组转化为下标矩阵
				echo off
							

相关资源