模式识别感知器算法matlab,模式识别第三章-感知器算法.doc

模式识别第三章-感知器算法

模式识别第三章

感知器算法

一.用感知器算法求下列模式分类的解向量w:

将属于的训练样本乘以(-1),并写成增广向量的形式:

,,,

,,,

第一轮迭代:取,

因不大于0,故

因大于0,故

因大于0,故

因大于0,故

因不大于0,故

因大于0,故

因不大于0,故

因大于0,故

第二轮迭代:

因不大于0,故

因不大于0,故

因大于0,故

因大于0,故

因不大于0,故

因大于0,故

因大于0,故

因大于0,故

第三轮迭代:

因不大于0,故

因大于0,故

因不大于0,故

因大于0,故

因不大于0,故

因大于0,故

因不大于0,故

因大于0,故

第四轮迭代:

因不大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

第五轮迭代:

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

因大于0,故

该轮迭代全部正确,因此解向量,相应的判别函数为:

编写求解上述问题的感知器算法程序

实验结果截图

程序代码

%程序功能:实现感知器算法

%作者:赵晓梅 座机电话号码

%时间:2014.10.5

clc;

clear all;

fprintf '感知器算法\n' ;

%输入模式样本

x [0,0,0,1;1,0,0,1;1,0,1,1;1,1,0,1;0,0,-1,-1;0,-1,-1,-1;0,-1,0,-1;-1,-1,-1,-1];

[N,n] size x ;%获取样本数目和维数;N为样本数目;n为样本维数

C 1;

w0 [0,0,0,0]';%初始化解向量

w w0;

flag 1;%迭代继续标志,当迭代全部正确时,flag 0,迭代结束

k 0;%记录迭代次数

while flag flag 0; k k+1; for i 1:N if w'*x i,: ' 0%当迭代错误,w加上相应的x w w+x i,: '; flag 1; end end

end

fprintf '迭代次数%d\n',k ;

fprintf '解向量为w ' ;

for j 1:n fprintf '%d ',w j ;

end

fprintf ' \n' ;

fprintf '相应的判别函数为d x ' ;

for j 1:n-1 fprintf ' %d x%d+',w j ,j ;

end

fprintf ' %d \n',w j ;

你可能感兴趣的:(模式识别感知器算法matlab)