性分类器可以较好的对样本进行分类。并且当初始权向量取为a=[0,0,0]时,两个训练的收敛步数分别为37和62;而当初始权向量取为a=[1,1,1],两个训练的收敛步数分别为49和14。可见初始权向量的选取会改变分类的收敛速度。附录程序clear,%原始数据W1=[05.0-3.52.04.13.1-0.80.96.03.9;1.1 6.0 -4.1 2.7 2.8 5.6 -1.3 1.2 6.4 4.0];4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -4.1 3.7 -2.2];W2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 6.4 4.1;W3=[-3.0 0.5 2.9 -0.1 -4.0-1.3 -3.4 -4.1-5.11.9,-2.9 6.72.1 5.2 2.2 3.76.2 3.4 1.6 5.1];%将所有训练样本进行规范化增广ww1=[ones(1,size(W1,2);W1];ww2=[ones(1,size(W2,2);W2];ww3=[ones(1,size(W3,2);W3]%对W1、W2训练w12=[wwl,-ww2];%增广样本规范化为w12y=zeros(1,size(w12,2);%y初始为零矩阵a=[0;0;0];%初始权向量ak=0;while any(y<=0)for i=1:size(y,2)y(i)=a*w12(:,;);end;a=a+(sum((w12(:,find(y<=0))));%修正向量ak=k+1:%收敛步数end;subplot(1,2,1);plot(W1(1,),W1(2,),r.);hold on;plot(W2(1:),W2(2,:),*);%找到样本在坐标中的集中区域,以便于打印样本坐标图xmin=min(min(W1(1,:),min(W2(1,:);xmax=max(max(W1(1,:),max(W2(1,);xindex=xmin-1:(xmax-xmin)/100:xmax+1;
性分类器可以较好的对样本进行分类。并且当初始权向量取为 a=[0,0,0]时,两个 训练的收敛步数分别为 37 和 62;而当初始权向量取为 a=[1,1,1],两个训练的收 敛步数分别为 49 和 14。可见初始权向量的选取会改变分类的收敛速度。 附录 程序 clear; %原始数据 W1=[0 5.0 -3.5 2.0 4.1 3.1 -0.8 0.9 6.0 3.9; 1.1 6.0 -4.1 2.7 2.8 5.6 -1.3 1.2 6.4 4.0]; W2=[7.1 -1.4 4.5 6.3 4.2 1.4 2.4 2.5 6.4 4.1; 4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -4.1 3.7 -2.2]; W3=[-3.0 0.5 2.9 -0.1 -4.0 -1.3 -3.4 -4.1 -5.1 1.9; -2.9 6.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1]; %将所有训练样本进行规范化增广 ww1=[ones(1,size(W1,2));W1]; ww2=[ones(1,size(W2,2));W2]; ww3=[ones(1,size(W3,2));W3]; %对 W1、W2 训练 w12=[ww1,-ww2];%增广样本规范化为 w12 y=zeros(1,size(w12,2));%y 初始为零矩阵 a=[0;0;0];%初始权向量 a k=0; while any(y<=0) for i=1:size(y,2) y(i)=a'*w12(:,i); end; a=a+(sum((w12(:,find(y<=0)))'))';%修正向量 a k=k+1;%收敛步数 end; subplot(1,2,1); plot(W1(1,:),W1(2,:),'r.'); hold on; plot(W2(1,:),W2(2,:),'*'); %找到样本在坐标中的集中区域,以便于打印样本坐标图 xmin=min(min(W1(1,:)),min(W2(1,:))); xmax=max(max(W1(1,:)),max(W2(1,:))); xindex=xmin-1:(xmax-xmin)/100:xmax+1;
yindex=-a(2)*xindex/a(3)-a(1)/a(3);plot(xindex,yindex);%对W2、W3训练w23-[ww2,-ww3];%增广样本规范化为w23y=zeros(1,size(w23,2);%y初始为零矩阵a=[0;0;0];%初始权向量ak=0;while any(y<=0)for i=l:size(y,2)y(i)=a*w23(;,i);end,a=a+(sum((w23(:,find(y<=0)));%修正向量ak=k+1;%收敛步数end,subplot(1,2,2), plot(W2(1,),W2(2,:),r.)hold on;plot(W3(1,),W3(2,:),*);%找到样本在坐标中的集中区域,以便于打印样本坐标图xmin=min(min(W2(1,:),min(W3(1,:);xmax=max(max(W2(1,),max(W3(1,)))xindex=xmin-1:(xmax-xmin)/100:xmax+1;yindex=-a(2)*xindex/a(3)-a(1)/a(3);plot(xindex,yindex);
yindex=-a(2)*xindex/a(3)-a(1)/a(3); plot(xindex,yindex); %对 W2、W3 训练 w23=[ww2,-ww3];%增广样本规范化为 w23 y=zeros(1,size(w23,2));%y 初始为零矩阵 a=[0;0;0];%初始权向量 a k=0; while any(y<=0) for i=1:size(y,2) y(i)=a'*w23(:,i); end; a=a+(sum((w23(:,find(y<=0)))'))';%修正向量 a k=k+1;%收敛步数 end; subplot(1,2,2); plot(W2(1,:),W2(2,:),'r.'); hold on; plot(W3(1,:),W3(2,:),'*'); %找到样本在坐标中的集中区域,以便于打印样本坐标图 xmin=min(min(W2(1,:)),min(W3(1,:))); xmax=max(max(W2(1,:)),max(W3(1,:))); xindex=xmin-1:(xmax-xmin)/100:xmax+1; yindex=-a(2)*xindex/a(3)-a(1)/a(3); plot(xindex,yindex);