模式识别实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

深圳大学研究生课程:模式识别理论与方法课程作业实验报告实验名称:PCA主分量分析与Fisher线性判别分析实验编号:Proj03-02签名:姓名:罗升学号:2140130418截止提交日期:2015年4月20日摘要:PCA主分量分析是把多个特征映射为少数几个综合特征的一种统计分析方法,其是寻找在最小均方意义下最能够代表原始数据的投影方法。Fisher线性判别是将n类m维数据尽可能地投影到一个方向(一条直线),使得类与类之间尽可能分开。由PCA主分量分析实验可以得出,PCA分析可以对数据集合在特征空间进行平移和旋转。由Fisher线性判别分析实验可以得出,Fisher线性判别方法可以实现高维数据在一维中分类,然而通过对比Fisher线性判别方法找的最优方向与非最优方向的分类结果,前者的分类效果不如后者。一、基本原理1.PCA主分量分析主分量分析是把多个特征映射为少数几个综合特征的一种统计分析方法。在多特征值的研究中,往往由于特征个数太多,且彼此之间存在一定的相关性,因而使得所观测的数据在一定程度上有信息的重叠。当特征较多时,在高维空间中研究样本的分布规律就更麻烦。主分量分析采取组合特征的方法来降维,对几个特征座线性组合是一种具有吸引力的方法,因为线性组合容易计算,并且能够进行解析分析。从本质上来说,线性方法是把高维的数据投影到低维空间中,主分量分析是寻找在最小均方意义下最能够代表原始数据的投影方法。1.1平方误差准则函数有n个d维12x,x,,xn,用一个d维的向量0x代表n个样本,平方误差准则函数00(x)J为:20001(x)xxnkkJ(1)00(x)J最小化的那个d维的向量0xm,其中m是样本均值:11mxnkkn(2)2.1样本投影的直线通过把全部样本向通过样本均值的一条直线作投影,我们能够得到代表全部样本的一个一维向量,e表示通过样本均值的直线上的单位向量,那么,这条直线的方程可以表示为:xmaeae(xm)tkk(3)3.1散布矩阵1S(xm)(xm)ntkkk(4)4.1直线e的最优方向散布矩阵最大的本征值对应的那个本征向量作为投影直线e的方向:See(5)2.Fisher线性判别分析Fisher线性判别是将n类m维数据尽可能地投影到一个方向(一条直线),使得类与类之间尽可能分开。有一组n个d维的样本12x,x,,xn,它们分属于两个不同的类别,即其中的大小为1n的样本属于1,大小为2n的样本属于2。如果对x中的各个成分作线性组合,就得到点积,结果是一个标量wxty(6)当x是二维的,我们就是要找一条直线(方向为w)来做投影,然后寻找最能使样本点分离的直线。如下图:从直线上来看,右图比较好,可以很好地将不同类别的样本点分离。2.1样本均值如果mi为d维样本均值为x1mxiiin(7)那么,投影后的点的样本均值为x11wxwmiittiiyiimynn(8)2.2类内散布矩阵Si和总类内散布矩阵SwxS(xm)(xm)itiii(9)12SSSw(10)2.3投影后的最佳方向112wS(mm)w(11)二、实验方法1.PCA主分量分析1.1对二维高斯分布情况,给定均值矢量和协方差矩阵如下:590.4,70.41=生成1000个二维样本矢量的数据集合X,并绘出该样本集合的二维散点图。1.2计算样本集合的均值向量和散布矩阵,并计算散布矩阵的特征值和特征向量,在二维坐标中,以均值向量为中心,画出每一个特征向量方向的直线,特征向量方向的直线叠加在二维散点图上。样本集合的均值向量和散布矩阵为:散布矩阵的特征值和特征向量为:-6-4-202468101214-20246810121000个二维高斯分布的二维散点图样本第一特征向量第二特征向量1.3对集合X中的每一个向量x进行下面的变换,生成集合YXxyD(xm)xm为集合X的均值向量,x12D[e,e]为散布矩阵的特征向量,分别绘出集合X和集合Y的二维散点图。-6-4-202468101214-10-5051015集合X和集合Y的二维散点图结论:可以从图中看出,集合Y是集合X经过平移旋转之后得到的,且其与集合X正交。1.4对三维高斯分布情况,给定均值矢量和协方差矩阵如下:440.205,0.2209000.5=生成1000个三维样本矢量的数据集合X,并绘出该样本集合的三维散点图。1.5计算样本集合的均值向量和散布矩阵,并计算散布矩阵的特征值和特征向量,在三维坐标中,以均值向量为中心,画出每一个特征向量方向的直线,特征向量方向的直线叠加在三维散点图上。样本集合的均值向量为:样本集合的散布矩阵为:散布矩阵的特征值和特征向量为:-10-505100510152051015201000个三维高斯分布的三维散点图样本第一特征向量第二特征向量第三特征向量1.6对集合X中的每一个向量x进行下面的变换,生成集合YXxyD(xm)xm为集合X的均值向量,x123D[e,e,e]为散布矩阵的特征向量,分别绘出集合X和集合Y的三维散点图。-10-50510-1001020-10-505101520集合X和集合Y的三维散点图结论:可以从图中看出,集合Y是集合X经过平移旋转之后得到的,且其与集合X正交。2.Fisher线性判别分析2.1编写用Fisher线性判别方法,对三维数据求最优方向w的通用程序。求最优方向的函数为:fisher()函数2.2对表格中的类别2w和3w,计算最优方向w。类别2w和3w的最优方向w为:2.3画出表示最优方向w的直线,并且标记出投影后的点在直线上的位置。2.4在这个子空间中,对每种分布用一维高斯函数拟合,即把投影后的每一类数据看作满足一维高斯分布,求出其均值和方差。并且求出分类决策面(两个一维高斯分布的交点处)。类别2w在最优方向w投影后数据的均值和方差为:类别3w在最优方向w投影后数据的均值和方差为:-2-1012-1012-101234最优方向及样本点投影后在直线上的位置第2类样本点第3类样本点最优方向-1-0.8-0.6-0.4-0.200.20.40.60.81-0.500.511.522.533.54两类样本投影后的一维高斯分布第2类投影一维高斯第3类投影一维高斯决策面第2类正确分类第3类正确分类2.5计算得到的分类器的训练误差。2.6使用非最优方向(1.0,2.0,1.5)tw重复实验2.4、2.5两个步骤,计算在这个非最优子空间中的训练误差。类别2w在最优方向w投影后数据的均值和方差为:类别3w在最优方向w投影后数据的均值和方差为:-505101520-0.200.20.40.60.811.2两类样本投影后的一维高斯分布第2类投影一维高斯第3类投影一维高斯决策面第2类正确分类第3类正确分类计算得到的分类器的训练误差:2.7实验结果分析通过对比fisher线性判别方法找的最优方向与非最优方向的分类结果,前者的效果不如后者。由于样本点的个数不能反映真实的误差情况,需要更多的样本点来验证最优方向的分类效果要好于非最优方向。附录1.PCA主分量分析%生成1000个二维样本矢量数据集合mu1=[57];sigma1=[90.4;0.41];X1=mvnrnd(mu1,sigma1,1000);plot(X1(:,1),X1(:,2),'.');title('1000个二维高斯分布的二维散点图');gridon;holdon;%计算样本集合的均值向量和散布矩阵,计算散布矩阵的%特征值和特征向量,并画出每一个特征向量方向的直线[mu,S,V,D]=PCA(X1);%生成1000个三维样本矢量数据集合mu2=[459];sigma2=[40.20;0.220;000.5];X2=mvnrnd(mu2,sigma2,1000);scatter3(X2(:,1),X2(:,2),X2(:,3),'.');title('1000个三维高斯分布的三维散点图');gridon;holdon;%计算样本集合的均值向量和散布矩阵,计算散布矩阵的%特征值和特征向量,并画出每一个特征向量方向的直线[mu,S,V,D]=PCA(X2);%计算样本集合的均值向量和散布矩阵,计算散布矩阵的%特征值和特征向量,并画出每一个特征向量方向的直线function[mu,S,V,D]=PCA(X)%r,N分别为样本集合,样本点数%mu为均值向量,S为散布矩阵,V,D为散布矩阵的特征向量和特征值color={'r','r-.','r:'};[x,y,z]=size(X);%计算样本集合的均值向量和散布矩阵sum=0;fori=1:1:xsum=sum+X(i,:,:);end%均值向量mu=sum/x;%散布矩阵S=0;fori=1:1:xS=S+(X(i,:,:)-mu)'*(X(i,:,:)-mu);end%计算散布矩阵的特征值和特征向量%V为特征向量,D为特征值[V,D]=eig(S);%对集合的每一个向量x进行变换fori=1:1:xY(i,:)=(V*(X(i,:,:)-mu)')';endify==2%画出每一个特征向量方向的直线fori=1:yquiver(mu(1),mu(2),10*V(1,i),10*V(2,i),char(color(i)));holdon;endlegend('样本','第一特征向量','第二特征向量');%集合X和集合Y的二维散点图figure;plot(X(:,1),X(:,2),'+');holdon;fori=1:yquiver(mu(1),mu(2),10*V(1,i),10*V(2,i),char(color(i)));holdon;endplot(Y(:,1),Y(:,2),'r*');holdon;2.Fisher线性判别分析%fisher线性判别w(:,:,1)=[0.42-0.0870.58;-0.2-3.3-3.4;1.3-0.321.7;0.390.710.23;-1.6-5.3-0.15;-0.0290.89-4.7;-0.231.92.2;0.27-0.3-0.87;-1.90.76-2.1;0.87-1.0-2.6];w(:,:,2)=[-0.40.580.089;-0.310.27-0.04;0.380.055-0.035;-0.150.530.011;-0.350.470.034;0.170.690.1;-0.0110.55-0.18;-0.270.610.12;-0.0650.490.0012;-0.120.054-0.063];w(:,:,3)=[0.831.6-0.014;1.11.60.48;-0.44-0.410.32;0.047-0.451.4;0.280.353.1;-0.39-0.480.11;0.34-0.0790.14;-0.3-0.222.2;1.11.2-0.46;0.18-0.11-0.49];%求最优方向%W=fisher(w(:,:,2),w(:,:,3));%非最优方向W=[1.02.0-1.5]';%第2,3类样本点plot3(w(:,1,2),w(:,2,2),w(:,3,2),'ro');holdon;plot3(w(:,1,3),w(:,2,3),w(:,3,3),'b^');holdon;%最优方向的直线plot3([-4*W(1)4*W(1)],[-4*W(2)4*W(2)],[-4*W(3)4*W(3)]);gridon;holdon;W1=W;W1=W1/sqrt(sum(W1.^2));%第2类样本在最优方向直线上投影的位置fori=1:10z1(i)=W1'*w(i,:,2)';plot3(z1(i)*W1(1),z1(i)*W1(2),z1(i)*W1(3),'ro');plot3([w(i,1,2)z1(i)*W1(1)],[w(i,2,2)z1(i)*W1(2)],[w(i,3,2)

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功