网站大量收购闲置独家精品文档,联系QQ:2885784924

PCA降维在MATLAB上实现.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PCA降维在MATLAB上实现

PCA降维在MATLAB上的实现 学 院 计算机科学与技术 专 业 计算机科学与技术 年 级 2011级 姓 名 周忠儒 /王云标 学 号 30111216058/051 指导教师 魏建国 2014年 5月 28日 PCA降维在MATLAB上的实现 一 实验目的 2 二 实验环境 2 三 实验原理 2 1、PCA降维方法原理 2 2、MATLAB 3 3、PCA降维方法详解 3 1) 、原始数据: 3 2)、协方差矩阵的求法: 4 3)、计算协方差矩阵的特征向量和特征值: 6 4)、选择成分组成模式矢量: 6 5)、得到降维后的数据: 7 四 实验代码详解 7 五 实验结果 8 六 实验总结 9 PCA降维在MATLAB上的实现 一 实验目的 1 掌握PCA降维的基本内容 2 了解MATLAB的基本用法 3 用PCA降维算法处理图像数据 二 实验环境 Matlab 7.0 三 实验原理 1、PCA降维方法原理 PCA的原理就是将原来的样本数据投影到一个新的空间中,相当于我们在矩阵分析里面学习的将一组矩阵映射到另外的坐标系下。通过一个转换坐标,也可以理解成把一组坐标转换到另外一组坐标系下,但是在新的坐标系下,表示原来的原本不需要那么多的变量,只需要原来样本的最大的一个线性无关组的特征值对应的空间的坐标即可。MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。 标准差: 方差: 在这里,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,例如上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解这几科成绩之间的关系,这时,我们就要用协方差,协方差就是一种用来度量两个随机变量关系的统计量,其定义为: 从协方差的定义上我们也可以看出一些显而易见的性质,如: cov(X,Y)=var(X); cov(X,Y)=var(Y,X); 需要注意的是,协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。给出协方差矩阵的定义: 这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为: 可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。 2)、协方差矩阵的求法: 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的。下面我们将在matlab中用一个例子进行详细说明: 首先,随机产生一个10*3维的整数矩阵作为样本集,10为样本的个数,3为样本的维数。MySample = fix(rand(10,3)*50) 根据公式,计算协方差需要计算均值,那是按行计算均值还是按列呢,我一开始就老是困扰这个问题。前面我们也特别强调了,协方差矩阵是计算不同维度间的协方差,要时刻牢记这一点。样本矩阵的每行是一个样本,每列为一个维度,所以我们要按列计算均值。为了描述方便,我们先将三个维度的数据分别赋值: dim1 = MySample(:,1); dim2 = MySample(:,2); dim3 = MySample(:,3); 计算dim1与dim2,dim1与dim3,dim2与dim3的协方差: sum((dim1-mean(dim1)).*(dim2-mean(dim2)))/(size(MySample,1)-1) sum((dim1-mean(dim1)).*(dim3-mean(dim3)))/(size(MySample,1)-1)? sum((dim2-mean(dim2)).*(dim3-mean(dim3)))/(size(MySample,1)-1)? 搞清楚了这个后面就容易多了,协方差矩阵的对角线就是各个维度上的方差,下面我们依次计算: std(dim1)^2 std(dim2)^2? std(dim3)^2? 这样,我们就得到了计算协方差矩阵所需要的所有数据,调用Matlab自带的cov函数进行验证: cov(MySample) 可以看到跟我们计算的结果是一样的,说明

文档评论(0)

185****7617 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档