模式识别实验.docx

上传人:b****1 文档编号:1690202 上传时间:2022-10-23 格式:DOCX 页数:20 大小:289.89KB
下载 相关 举报
模式识别实验.docx_第1页
第1页 / 共20页
模式识别实验.docx_第2页
第2页 / 共20页
模式识别实验.docx_第3页
第3页 / 共20页
模式识别实验.docx_第4页
第4页 / 共20页
模式识别实验.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

模式识别实验.docx

《模式识别实验.docx》由会员分享,可在线阅读,更多相关《模式识别实验.docx(20页珍藏版)》请在冰豆网上搜索。

模式识别实验.docx

模式识别实验

 

《模式识别》实验报告

班级:

电子信息科学与技术13级02班

姓名:

学号:

指导老师:

成绩:

 

通信与信息工程学院

二〇一六年

实验一最大最小距离算法

1、实验内容

1.熟悉最大最小距离算法,并能够用程序写出。

2.利用最大最小距离算法寻找到聚类中心,并将模式样本划分到各聚类中心对应的类别中。

2、实验原理

N个待分类的模式样本,分别分类到聚类中心对应的类别之中。

最大最小距离算法描述:

(1)任选一个模式样本作为第一聚类中心。

(2)选择离距离最远的模式样本作为第二聚类中心。

(3)逐个计算每个模式样本与已确定的所有聚类中心之间的距离,并选出其中的最小距离。

(4)在所有最小距离中选出一个最大的距离,如果该最大值达到了的一定分数比值以上,则将产生最大距离的那个模式样本定义为新增的聚类中心,并返回上一步。

否则,聚类中心的计算步骤结束。

这里的的一定分数比值就是阈值,即有:

(5)重复步骤(3)和步骤(4),直到没有新的聚类中心出现为止。

在这个过程中,当有k个聚类中心时,分别计算每个模式样本与所有聚类中心距离中的最小距离值,寻找到N个最小距离中的最大距离并进行判别,结果大于阈值是,存在,并取为产生最大值的相应模式向量;否则,停止寻找聚类中心。

(6)寻找聚类中心的运算结束后,将模式样本按最近距离划分到相应的聚类中心所代表的类别之中。

三、实验结果及分析

该实验的问题是书上课后习题2.1,以下利用的matlab中的元胞存储10个二维模式样本

X{1}=[0;0];X{2}=[1;1];X{3}=[2;2];X{4}=[3;7];X{5}=[3;6];

X{6}=[4;6];X{7}=[5;7];X{8}=[6;3];X{9}=[7;3];X{10}=[7;4];

利用最大最小距离算法,matlab运行可以求得

从matlab运行结果可以看出,聚类中心为,以为聚类中心的点有,以为聚类中心的点有,以为聚类中心的有。

同时,做出聚类分析后的分布图,如下:

图中用蓝色大圈标记了聚类中心,用星号标记了以为聚类中心的样本,用三角符号标记了以以为聚类中心的样本,用红色小圈标记了以为聚类中心的样本,该程序成功进行了分类

实验二感知器算法

一、实验内容

1.熟悉感知器算法,并能够用程序写出。

2.利用感知器算法进行判别分类,算出判别函数,画出判别界面。

2、实验原理

直接用来对模式进行分类的准则函数。

若分属于ω1,ω2的两类模式可用一方程来划分,那么称为判别函数,或称判决函数、决策函数。

如,一个二维的两类判别问题,模式分布如图示,这些分属于ω1,ω2两类的模式可用一直线方程来划分。

其中式中:

为坐标变量。

 

图2-1两类二维模式的分布

将某一未知模式代入:

若,则类;

若,则类;

若,则或拒绝。

两类线性可分的模式类,设其中,,应具有性质

对样本进行规范化处理,即ω2类样本全部乘以(-1),则有:

感知器算法通过对已知类别的训练样本集的学习,寻找一个满足上式的权向量。

感知器算法步骤:

(1)选择N个分属于ω1和ω2类的模式样本构成训练样本集构成增广向量形式,并进行规范化处理。

任取权向量初始值W

(1),开始迭代。

迭代次数k=1。

(2)用全部训练样本进行一轮迭代,计算的值,并修正权向量。

分两种情况,更新权向量的值:

1.分类器对第i个模式做了错误分类,权向量校正为:

c:

正的校正增量。

2.若分类正确,权向量不变:

统一写为:

(3)分析分类结果:

只要有一个错误分类,回到

(2),直至对所有样本正确分类。

感知器算法是一种赏罚过程:

分类正确时,对权向量“赏”——这里用“不罚”,即权向量不变;

分类错误时,对权向量“罚”——对其修改,向正确的方向转换。

3、实验结果与分析

已知两类训练样本为:

设,同样地,利用matlab元胞数组存储该两类训练样本

利用感知器算法,matlab运行得到如下结果:

因此,可以得到感知器算法算出的判别函数为:

利用matlab的画图函数画出判别界面以及样本点,得到如下的分布图:

 

由样本分布图可以看出,判别界面成功将两类训练样本分离。

实验三LMSE算法

1、实验内容

1.了解LMSE算法,并能够用程序写出。

2.利用LMSE算法进行判别分类,算出判别函数,并画出判别界面。

二、实验原理

LMSE算法为最小平方误差算法,其算法过程如下:

(1)将N个分属于类和类的n维模式样本写成增广形式,将属于的训练样本乘以(-1),写出规范化增广样本矩阵。

(2)求的伪逆矩阵。

(3)设置初值c和,c为正的校正增量,的各分量大于0,括号中数字代表迭代次数k=1,开始迭代。

(4)计算,进行可分性判别。

如果,模式线性可分,解为,算法结束。

如果,模式线性可分,有解。

继续迭代。

如果,停止迭代,检查是否大于0。

若大于0,有解,否则无解,算法结束。

(5)计算和

先计算,再计算,迭代次数k加1,返回第(4)步。

3、实验结果及分析

该实验用的训练样本与感知器算法使用的样本一致,为以下两类训练样本:

设定初始值,同样地利用matlab中的元胞数组存放训练样本点,通过编写matlab的LMSE程序可以得到以下结果:

所以,LMSE算法求得的该两类训练样本的判别函数为

利用matlab的画图函数画出判别界面以及样本点,得到如下的分布图:

 

由样本分布图可以看出,LMSE算法所得的判别界面也成功将两类训练样本分离。

 

实验四Parzen窗估计

1、实验内容

1.了解Parzen窗概率密度的估计方法,能用程序实现。

2.编写matlab程序,求解一个正态密度的Parzen窗估计。

2、实验原理

设区域是一个维的超立方体,并设是超立方体的棱长,则超立方体的体积为定义窗函数为

由于是以原点为中心的一个超立方体,所以当落入到以为中心,体积为的超立方体时,,否则,因此落入该超立方体内的样本数为

是的第N次估计,则有

所以联立上面两式得

这个式子就是Parzen窗法的基本公式。

3、实验结果与分析

待估计的的均值为零,方差为1的正态密度函数,利用matlab可以随机产生1个,16个,256个学习样本的样本集,选取正态窗函数

并设,分别取,利用matlab可以得到不同取值下的估计结果。

(1)当时得到的结果

从图中可以看出,估计概率密度函数是一个样本为中心的小丘,误差很大。

(2)当时得到的结果

从图中可以看出,在时,噪声误差非常大,产生了不连续性。

慢慢增大时,受到了平滑,但平均性误差也随之增大,分辨率降低。

(3)当时得到的结果

从下图可以看出,当增大到,估计量越来越好,在时,估计量很接近真实分布。

从整个实验来看,Parzen窗法只要样本足够多,总可以保证收敛于任何复杂的未知概率密度函数,但是也受到值的影响,当太小时,就会造成不连续性,噪声误差增大。

当太大时,分辨率就会下降,平均性误差就会增大。

 

附录一 最大最小距离算法程序

clear;

clc;

X{1}=[0;0];X{2}=[1;1];X{3}=[2;2];X{4}=[3;7];X{5}=[3;6];

X{6}=[4;6];X{7}=[5;7];X{8}=[6;3];X{9}=[7;3];X{10}=[7;4];

%取第一个点为一个聚类中心

z{1}=X{1};

position

(1)=1;

%计算其它点到z1的距离

fori=1:

10

d(i)=dist(X{i}',z{1});

end

%找到距离z1最远的点的位置

max_dist=max(d);

pos=find(d==max(d));

z{2}=X{pos};

position

(2)=pos;

rate=0.5;%分数比值设置为0.5

T=rate*dist(z{1}',z{2});%初始阈值

min_dist=d;

flag=2;

index=1;

while

(1)%循环求出其他距离并与事先设定的阈值作比较

fori=1:

10

d(flag,i)=dist(X{i}',z{flag});

ifmin_dist(i)>d(flag,i)

min_dist(index)=d(flag,i);

else

min_dist(index)=min_dist(i);

end

index=index+1;

end

index=1;

max_dist=max(max(min_dist));

[xy]=find(min_dist==max(min_dist));

if(max_dist>T)

flag=flag+1;

z{flag}=X{y};

position(flag)=y;

else

break;

end

end

fprintf('以下序号的样本为聚类中心:

\n');

fori=1:

flag

fprintf('%d\t',position(i));

end

fprintf('\n=======================');

%计算各样本到各聚类中心的距离

fori=1:

10

forj=1:

flag

distance(i,j)=dist(X{i}',z{j});

end

end

flag1=1;

flag2=1;

distance2=distance';

[mincolI]=min(distance2);

%对10个样本进行聚类

fori=1:

10

forj=1:

flag

if(I(i)==j)

array(j,flag1)=i;

flag1=flag1+1;

else

continue;

end

end

end

%对聚类结果进行输出

while(flag2<=flag)

fprintf('\n第%d类的聚类中心为:

%d\n',flag2,position(flag2));

fprintf('属于第%d类的有:

\n',flag2);

fori=1:

10

if(array(flag2,i)~=0)

fprintf('%d\t',array(flag2,i));

ifflag2==1

plot(X{array(flag2,i)}

(1),X{array(flag2,i)}

(2),'b*');

holdon;

end

ifflag2==2

plot(X{array(flag2,i)}

(1),X{array(flag2,i)}

(2),'black^');

holdon;

end

ifflag2==3

plot(X{array(flag2,i)}

(1),X{array(flag2,i)}

(2),'ro');

title('样本坐标聚类显示图');

holdon;

end

end

end

fprintf('\n');

flag2=flag2+1;

end

gridon;

axis([0809]);

holdon

plot(X{position

(1)}

(1),X{position

(1)}

(2),'o','Markersize',10);

holdon

plot(X{position

(2)}

(1),X{position

(2)}

(2),'o','Markersize',10);

holdon

plot(X{position(3)}

(1),X{p

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1