模式识别作业

发布 2021-03-07 06:33:28 阅读 8647

感知器训练算法。

在设计贝叶斯分类器时需要设法获取样本统计分布的资料,应知道先验概率及类分布概率密度函数等。然而,在样本数不充足条件下要获取准确的统计分布是很困难的。这样,可以考虑另外一种分类器设计方法,即根据训练样本集提供的信息,直接进行分类器设计。

下面实验是针对线性可分情况下的感知器算法。

实验所用样本数据表中已给出(其中每个样本空间(数据)为两维,x 1表示第一维的值、x 2表示第二维的值),编制程序实现ω1、ω 2类ω 2、ω 3类的分类。分析分类器算法的性能。

感知器算法实验数据。

感知器训练算法的思路:

设训练样本集x=,其中每个样本xk,k=1,2,…,n分别属于类型wi或类型wj,且xi类别属性已知。为了确定加权向量a*,则进行下面的训练算法:

1) 给定初始值:置k=0,赋权向量为任意值,可选常数c>0.

2) 输出训练样本xk=,计算判别函数值g(xk);

3) 按如下规则修正权向量a(k);

若xk属于wi且g(xk)<=0,则a(k+1)=a(k)+cxk;

若xk属于wj且g(xk)>0,则a(k+1)=a(k)-cxk;

4) 令k=k+1,返回(2),直到a对所有训练样本均稳定不变,则结束。

实现程序的思路:

第一步,给出三组样本数据,w1,w2,w3,用矩阵形式表示出来ww1,ww2,ww3;

第二步,w12=[ww1,-ww2],初始化k值,y向量。

第三步,开始迭代,计算判别函数值y,根据y值来决定是否改变权向量a;

第四步,计算迭代的步数,输出结果。

clearoriginal data

w1=[0.1 3.1 -0.

8 0.9 5.0 3.

9 .1 6.8 -3.

5 2.0 4.1 4.

0;4.0 5.0 -1.

3 1.2 6.4 4.

0 1.1 7.1 -4.

1 2.7 2.8 5.

0];w2=[3.1 7.1 -1.

4 4.5 6.3 4.

2 1.4 2.4 2.

5 8.4 4.1 5.

0;-2.0 4.2 -4.

3 0.0 1.6 1.

9 -3.2 -4.0 -6.

1 3.7 -2.2 -1];

w3=[-6.0 -3.0 0.

5 2.9 -0.1 -0.

4 -1.3 -3.4 1 -5.

1 1.9 2;5 -2.9 8.

7 2.1 5.2 2.

2 3.7 6.2 3.

4 1.6 5.1 2];

normalized

ww1=[ones(1,size(w1,2));w1];

ww2=[ones(1,size(w2,2));w2];

ww3=[ones(1,size(w3,2));w3];

w12=[ww1,-ww2];

y=zeros(1,size(w12,2y为1行12列的全0矩阵。

a=[1;1;1初始值a=[1 1 1];

k=0k=0;

while any(y<=0开始迭代并检测y值是否大于0

for i=1:size(y,2)

y(i)=a'*w12(:,i);

enda=a+(sum((w12(:,find(y<=0若y<0,则改变a的值。

k=k+1k标记迭代的步数。enda

kfigure(1)

plot(w1(1,:)w1(2,:)r用大红点表示属于w1类的点。

hold on保持绘制的点不被清除。

plot(w2(1,:)w2(2用*表示属于w2类的点。

xmin=min(min(w1(1,:)min(w2(1,:)

xmax=max(max(w1(1,:)max(w2(1,:)

ymin=min(min(w1(2,:)min(w2(2,:)

ymax=max(max(w1(2,:)max(w2(2,:)

xindex=xmin-1:(xmax-xmin)/100:xmax+1;

yindex=-a(2)*xindex/a(3)-a(1)/a(3);

plot(xindex,yindex画出w1与w2类之间的决策面。

w12=[ww2,-ww3w2与w3类的决策面的确定,%与上面类似。

y=zeros(1,size(w12,2));

a=[1;1;1];

k=0;while any(y<=0)

for i=1:size(y,2)

y(i)=a'*w12(:,i);

enda=a+(sum((w12(:,find(y<=0)))

k=k+1;enda

kfigure(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)

分类结果如下图:

实验结果表明,w1与w2类收敛的步数为35,w2与w3类收敛的步数为17。

总结:感知器训练算法是针对线性可分的,对于不可分的一组数据,用感知器算法得不出。

结果来。

模式识别作业

6.题目 fisher分类和基于核的fisher分类的设计与实现研究。具体内容 1.简述fisher分类和基于核的fisher分类的算法原理 2.举出实例 3.用matlab软件编写程序实现 4.分析实验结果。fisher分类和基于核的fisher分类的设计与实现研究。1 fisher分类和基于核的...

模式识别作业

模式识别课程matlab程序作业。模式识别贝叶斯决策 正常状态细胞p 1 0.9,异常状态细胞p 2 0.1,类条件概率密度分别为p x 1 n 0,1 p x 2 n 0.2,1.5 现有一待识别细胞,其观察值为0.2,用matlab写出程序对该细胞进行分类。编写程序如下 close all cl...

模式识别作业

题目 lsme分类算法原理及实现步骤。学院 通信学院 专业 自动化 学号 52110822 姓名 郑智鹏。lsme算法的基本原理。lmse算法是对准则函数引进最小均方误差这一条件而建立起来的,这种算法的主要特点是在训练过程中判定训练集是否线性可分,从而对结果的收敛性做出判断。此方法也称为ho kas...