当前位置:文档之家› 模式识别实验指导书

模式识别实验指导书

类别1234样本x 1x 2x 1x 2x 1x 2x 1x 210.1 1.17.1 4.2-3.0-2.9-2.0-8.42 6.87.1-1.4-4.30.58.7-8.90.23-3.5-4.1 4.50.0 2.9 2.1-4.2-7.74 2.0 2.7 6.3 1.6-0.1 5.2-8.5-3.25 4.1 2.8 4.2 1.9-4.0 2.2-6.7-4.06 3.1 5.0 1.4-3.2-1.3 3.7-0.5-9.27-0.8-1.3 2.4-4.0-3.4 6.2-5.3-6.780.9 1.2 2.5-6.1-4.1 3.4-8.7-6.49 5.0 6.48.4 3.7-5.1 1.6-7.1-9.710 3.9 4.0 4.1-2.2 1.9 5.1-8.0-6.3实验一 感知器准则算法实验一、实验目的:贝叶斯分类方法是基于后验概率的大小进行分类的方法,有时需要进行概率密度函数的估计,而概率密度函数的估计通常需要大量样本才能进行,随着特征空间维数的增加,这种估计所需要的样本数急剧增加,使计算量大增。

在实际问题中,人们可以不去估计概率密度,而直接通过与样本和类别标号有关的判别函数来直接将未知样本进行分类。

这种思路就是判别函数法,最简单的判别函数是线性判别函数。

采用判别函数法的关键在于利用样本找到判别函数的系数,模式识别课程中的感知器算法是一种求解判别函数系数的有效方法。

本实验的目的是通过编制程序,实现感知器准则算法,并实现线性可分样本的分类。

二、实验内容:实验所用样本数据如表2-1给出(其中每个样本空间(数据)为两维,x 1表示第一维的值、x 2表示第二维的值),编制程序实现1、 2类2、 3类的分类。

分析分类器算法的性能。

2-1 感知器算法实验数据具体要求1、复习感知器算法;2、写出实现批处理感知器算法的程序1)从a=0开始,将你的程序应用在和的训练数据上。

记下收敛的步数。

2)将你的程序应用在和类上,同样记下收敛的步数。

3)试解释它们收敛步数的差别。

3、提高部分:和的前5个点不是线性可分的,请手工构造非线性映射,使这些点在映射后的特征空间中是线性可分的,并对它们训练一个感知器分类器。

分析这个分类器对剩下的(变换后的)点分类效果如何?三、参考例程及其说明:针对、和的分类程序如下:clear%original dataw1=[.1 6.8 -3.5 2.0 4.1 3.1 -0.8 0.9 5.0 3.9; 1.1 7.1 -4.1 2.7 2.8 5.0 -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 8.4 4.1;4.2 -4.3 0.0 1.6 1.9 -3.2 -4.0 -6.1 3.7 -2.2];w3=[-3.0 0.5 2.9 -0.1 -0.4 -1.3 -3.4 1 -5.1 1.9; -2.9 8.7 2.1 5.2 2.2 3.7 6.2 3.4 1.6 5.1];%normalizedww1=[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,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;endakfigure(1)plot(w1(1,:),w1(2,:),'r.')hold onplot(w2(1,:),w2(2,:),'*')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)w12=[ww2,-ww3];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;endakfigure(2)plot(w2(1,:),w2(2,:),'r.')hold onplot(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)上述程序运行后,可以得到线性分类器如图2-1和图2-2所示。

图2-1感知器训练算法得到、的分类线图2-2感知器训练算法得到、的分类线类别12样本x 1x 2x 3x 1x 2x 31-0.40.580.0890.83 1.6-0.0142-0.310.27-0.04 1.1 1.60.483-0.380.055-0.035-0.44-0.410.324-0.150.530.0110.047-0.45 1.45-0.350.470.0340.280.35 3.160.170.690.1-0.39-0.480.117-0.0110.55-0.180.34-0.0790.148-0.270.610.12-0.3-0.22 2.29-0.0650.490.0012 1.1 1.2-0.4610-0.120.054-0.0630.18-0.11-0.49 类别3样本x 1x 2x 31 1.58 2.32-5.820.67 1.58-4.783 1.04 1.01-3.634-1.49 2.18-3.395-0.41 1.21-4.736 1.39 3.61 2.877 1.2 1.4-1.89思考问题:感知器算法最终得到的权值W 有什么用途?有了权值后如何得到分类面?实验二 Fisher 线性判别实验二、实验要求:1、改写例程,编制用Fisher 线性判别方法对三维数据求最优方向W 的通用函数。

2、对下面表3-1样本数据中的类别ω1和ω2计算最优方向W 。

3、画出最优方向W 的直线,并标记出投影后的点在直线上的位置。

表3-1 Fisher 线性判别实验数据4、选择决策边界,实现新样本xx1=(-0.7,0.58,0.089),xx2=(0.047,-0.4,1.04)的分类。

5、设某新类别3数据如表3-2所示,用自己的函数求新类别3分别和1、2分类的投影方向和分类阈值。

表3-2 新类别样本数据三、参考例程及其说明求取数据分类的Fisher 投影方向的程序如下:其中w 为投8-0.92 1.44-3.22 90.45 1.33-4.38 10-0.760.84-1.96影方向。

clearclcw1=[-0.4,0.58,0.089;-0.31,0.27,-0.04;-0.38,0.055,-0.035;-0.15,0.53,0.011;-0.35,.47,0.034;0.17 w2=[0.83,1.6,-0.014;1.1,1.6,0.48;-0.44,-0.41,0.32;0.047,-0.45,1.4;0.28,0.35,3.1;-0.39,-0.48,0.1 xx1=[-0.7,0.58,0.089];xx2=[0.047,-0.4,1.04];s1= cov(w1,1);m1= mean(w1);s2= cov(w2,1);m2= mean(w2);sw= s1 + s2;w= inv(sw)*(m1-m2)';h1=figure(1)for i=1:10plot3(w1(i,1),w1(i,2),w1(i,3),'r*')hold onplot3(w2(i,1),w2(i,2),w2(i,3),'bo')endy1=w'*w1';y2=w'*w2';figure(2)for i=1:10plot3(y1(i)*w(1),y1(i)*w(2),y1(i)*w(3),'rx')hold onplot3(y2(i)*w(1),y2(i)*w(2),y2(i)*w(3),'bp')end程序运行结果如图3-1和图3-2所示。

图3-1 原始数据分布图图3-2 线性投影后图形思考问题:空间中一点向某方向投影后(可以以二维空间为例体会这个问题),投影点到坐标原点的距离应是多少?图3-2是否为投影后的样本在直线上的位置?若不是,请重新作图,得到该投影直线和位置。

相关主题