主成分分析.docx
- 文档编号:6226682
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:10
- 大小:114.17KB
主成分分析.docx
《主成分分析.docx》由会员分享,可在线阅读,更多相关《主成分分析.docx(10页珍藏版)》请在冰豆网上搜索。
主成分分析
主成分分析(PCA)使用指南
LindsayISmith
Feb262002
第一章
介绍
本指南旨在帮助读者更好的理解PCA(principalcomponentsanalysis).PCA是面部识别,图像理解领域内的一个很有用的统计学技术,它也是用于以低维数据表示高维数据特征的一个常用技术。
对PCA进行详细介绍之前,本指南首先介绍了在PCA中所用到的一些数学概念及公式。
包括标准偏差,协方差,特征值和特征向量。
这些背景知识能帮助读者对PCA有更直观的理解,如要您对这些概念已经很熟悉了就可以跳过本章。
为了更好的对一些概念的表达,本章使用了一些贯穿于整个指南的例子。
如果您想获得更多的该方面的信息,请参阅:
“Elementarylinearalgebra5e”作者:
HowardAnton,出版社:
JohnWiley&SonsInc,ISBN0-471-85223-6.这本书是对那些背景知识数学概念有很清楚的解释。
第二章
背景数学概念
本部分主要介绍一些理解PCA过程的一些基础的数学技能。
各个主题及例子都是相对独立的。
对这些知识了解方面,指导为什么这些数学知识被使用及做了那些操作有什么结果比死记硬背的记住那些公式更有意义。
并不是所有介绍的数学知识在PCA中都用的着,但是背景知识中也没有明确列出哪些是最重要的。
我也包括了一部分统计学的知识着眼于分布测量或称为数据是怎么展开的。
另外一部分是代数矩阵,着眼于PCA中的基础部分特征值和特征向量及矩阵的重要特性。
2.1统计学
统计学主要就是围绕着这一思想而展开的,你有一组庞大的数据集,你想分析这个集中个体和总体之间的关系。
我将着眼于几个对这数据集的计算,通过观察发现这些数据集自己能高速我们什么。
2.1.1标准偏差
为了理解标准偏差,我们需要一个数据集。
搞统计的人习惯于取具有population的一个sample。
我们用人类的选举来举个例子,population是一个国家的所有公民,一个sample是统计测量中population的一个子集。
统计学中最最重要的事情就是通过仅限的几个例子测量(比如电话采访等形式),就能看出你想了解的整体的情况是什么样的。
在本节,我假定我们的数据集是一些比较大的数据集的具有代表性的例子。
本节的后面会有更多的一些关于采样和整体的信息。
下面是一些数据集的采样:
X=[12461215254568676598]
用符合X表示这些数字的整体,带有下标的表示该集中的第几个数字,比如X3表示4,Xn表示X中的某个数字。
关于该组数据,我们还可以计算一些其他的关于该数据的表示,比如平均值:
很遗憾,平均值除了能告诉我们关于一些中间值的信息,其他的没什么信息,比如下面两组数据均值相等,但是却是完全不同的两组数据:
[081220]和[891112]
但是这两组数据有什么不同呢?
这些数据的展开(spread)是不同的,数据均方差(SD)就是一组数据展开(spread)的表示。
我们怎么计算它呢?
在英国是这样对SD定义的:
“各点远离数据中心点的平均距离“。
计算的方法是计算每个点到平均点的距离的平方之和,再除以(n-1),开根号取正值。
公式表示如下:
S是表示均方差的符合。
你可能会问为什么说是除以(n-1)不是n?
答案有点很难解释,但是一般情况下,如果你的数据集是个采样集,比如你取了一个整体的子集,那么你必须用(n-1),因为证明结果是这结果能更接近标准偏差比用。
然而,如果你不计算采样集的标准偏差,而是计算整体,你应该除以n。
如果想了解关于该方面的知识,请参考网页:
它提供了下面的一个例子对分母的不同,和采样集整体的不同进行了讨论。
数据集1:
X(X-X)(X-X)2
0-10100
8-24
1224
2010100
Total208
Dividedby(n-1)69.333
SquareRoot8.3266
数据集2:
Xi(Xi-X)(Xi-X)2
8-24
9-11
1111
1224
Total10
Dividedby(n-1)3.333
SquareRoot1.8257
表2.1:
标准偏差计算
上表列出了两组数据集的标准偏差计算。
如意料的一样,第一组标准偏差较大,由于这些数据集距离均值中点较为分散。
下面一个例子:
[10101010]
均值是10,但是它的标准偏差是0,因为所有的数字都是相同的,他们都没有偏离中值。
2.1.2偏差
偏差是另外一个表示数据分散程度的特征值。
实际上它和偏差具有一定的一致性。
公式表示如下:
从上式发现,偏差仅仅是均方差的开方值,s2是表示方差比较常用的符号。
均方差和方差都是表示数据散开程度的特征值。
标准偏差比较常用。
在这对偏差的介绍是为下面方差的介绍做铺垫。
练习
找出下面数据的平均值,标准偏差和偏差值
[12233444597098]
[12152527328899]
[15357882909597]
2.1.3方差
上面我们看到的是一维的数据,这些数据可以看做是一个房间里所有人的高度信息等。
然而,许多数据集不只是一维的,统计分析的目的是看这些数据的多维之间是否有某种练习。
例如,我们可以把班级里的学生的高度和他们收到的论文分数当作我们的二维数据。
我们可以用统计分析来看是否学生的高度和他的分数有关系。
标准偏差和偏差仅仅使用于一维数据,因此对多维数据,你只能一维一维的计算他们的标准偏差。
然而,(能有一种度量能看出多少维是很重要的。
)
方差就是这样的一个度量量。
方差一般用于2维。
如果你计算一维数据和它自己之间,也就成了计算偏差。
因此,如果你有一个3维数据集(x,y,z),那么你可以计算x和y维之间的方差,x和z之间,y和z之间的方差。
计算x和x,y和y,z和z之间的方差,也就是计算x,y,z他们各自的偏差。
方差的公式非常相似于偏差的公式,如下:
式中,我将平方展开为了两部分。
因此更能贴近方差的概念:
includegraphiscovPlot.ps
图2.1:
曲线方差数据图表示研究投入的小时数和收到的分数之间的关系
它是相同的除了空白的第2列,X被Y所代替了。
这就是说,对于每个数据集,y和y的均值的差值乘以x和x的均值的差值,将他们相加,除以(n-1).
所有这些的原理是什么?
我们首先看一些例子数据。
假定我们收集了一些2维数据,我们问一群学生他们总共花在掩上COSC241上多少小时和他们收到了多少分数。
因此我们有了2维数据,第一维是H维,学生花费的小时数,第二是M维,收到的分数。
图2.2是计算的花费的小时数和收到的分数的方差图cov(H,M).
因此,他告诉了我们什么?
数值不是像他的符号那样重要。
如果值为正表示两维数据一起处于增加,意思是,研究所花的小时数增加,总的获得分数也增加。
如果数值为负,那么意思是有一维数据在增加,另外一为数据在减少。
如果我们获得了负值,就表示我们随着研究时间的增加,最后获得的分数在减少。
最后一种情况,如果方差为0,表示这两维数据是相互对立的。
从画的数据图2.1.3可以看出,随着小时的增加,获得的分数也在增加。
因此方差值能在任何2维数据集之间计算,它常用来查找那些不易直观看清的高维数据之间的关系。
你可能会问cov(X,Y)和cov(Y,X)是否相等?
他们是相等的,从公式中可以清楚的看到。
2.1.4方差矩阵
方差一般只计算2维数据之间。
如果我们的数据集是多于2维的,那么我们就需要计算的不只一个方差了。
例如,对三维数据集(x,y,z)你能计算cov(x,y),cov(x,z),cov(y,z).事实上,对于n维数据集,你能计算
个不同的方差值。
Hours(H)Mark(M)
Data939
1556
2593
1461
1050
1875
032
1685
542
1970
1666
2080
Totals167749
Averages13.9262.42
Covariance:
HM(Hi-H)(Mi-M)(Hi-H)(Mi-M)
939-4.92-23.42115.23
15561.08-6.42-6.93
259311.0830.58338.83
14610.08-1.42-0.11
1050-3.92-12.4248.69
18754.0812.5851.33
032-13.92-30.42423.45
16852.0822.5846.97
542-8.92-20.42182.15
19705.087.5838.51
16662.083.587.45
20806.0817.58106.89
Total1149.89
Average104.54
表2.2两维数据集和方差计算
计算所有维间的方差值时,一个比较有用的方法是计算它们并且把它们放在一个矩阵里。
本报告是假定你对矩阵操作很熟悉的前提。
因此,对一个n維系列数据的计算如下:
Cnxn=(ci,j,ci,j=cov(Dimi,Dimj)),
式中Cnxn是一个n行n列的矩阵,Dimx是第x維。
上面的公式意思是如果你要n維的数据,那么这个矩阵就是一个nxn的方阵,矩阵中的每一个数值是独立的两維数据的方差。
例子.我们计算了一个3維的数据,x,y,z三维,则方差矩阵是3行3列,如下:
C=[cov(x,x)cov(x,y)cov(x,z)
cov(y,x)cov(y,y)cov(y,z)
cov(z,x)cov(z,y)cov(z,z)]
注意:
对角线上的数据是自方差值。
改矩阵是基于对角线对称的。
练习:
计算出下面的2維数据的x,y維之间的方差值,描述一下结果表明了什么?
序号12345
X1039192328
Y4313322120
计算下面3維数据的方差矩阵
序号123
X1-14
Y213
Z13-1
2.2矩阵运算
第3章
主成份分析(principalcomponentsanalysis-PCA)
主成份分析是什么?
它是鉴别数据中特征的方法,并且用这种方法去突出这些数据中的相似性和不同。
因此对于一些高维,从直观的方式不太容易分辨的数据,PCA是一个分析这些数据的强有力的工具。
PCA还有另外一个优点就是,一旦你找到数据集中的特征后,你就可以压缩这些数据,比如减少数据的維数,但不丢失数据的信息。
这个技术用在图像压缩方面的介绍会在以下章节中介绍。
本章将带你看一些PCA整个计算法过程。
在本章我打算详细的描述该技术为什么会有这种效果,但是我会尽力的解释PCA处理后对每一点有什么作用,从而当你自己使用该技术的时候,会有一个明确的决定。
3.1方法
第一步:
得到数据
在我的简单的例子里,我打算用我自己的数据。
它是一个2維的数据集,使用2維的原因是我能绘出这些数据的曲线图从而显示PCA分析在每一步都做了什么。
在图3.1中能找到我曾经用过的数据。
第二步:
减去平均值
如果想PCA正确的使用,你必须坚强每一維的平均值。
因此,所有的x維数据必须坚强该維的平局值x,所有的y維数据必须坚强该維的平局值y。
这样就会生成一组数据他们的平均值是0。
Xyxy
2.52.40.690.49
0.50.7-1.31-1.21
2.22.90.390.99
1.92.20.090.29
DATA=3.13.0DataAdjust=1.291.09
2.32.70.490.79
21.60.190.31
11.1-0.81-0.81
1.51.6-0.31-0.31
1.10.9-0.71-1.01
原始的PCA数据
第三步:
计算方差矩阵
本步和2.1.4所描述的一样。
由于数据是2維的,因此方差矩阵式2X2.结果如下:
从矩阵数据看,所有数据是正值,因此我们可以预测x,y維数据都是增加的。
第四步:
计算协方差矩阵的特征值和特征向量
由于协方差矩阵式个方阵,我们能计算该矩阵的特征值和特征向量。
他们是这些数据的信息表示,非常重要。
值如下:
我们发现,这些特征向量都是单位向量,他们的长度都是1.这对PCA分析非常重要。
他们意义是什么?
如果你观察图3.2那么你就能看出这些数据具有怎么样的特征性。
就像预计的一样,从图上看出那两个变量确实是一起增加的。
在数据的顶端我标识了连个特征向量。
这连个特征向量是正交的。
但是更重要的是他们提供给我们代表这些数据的特征的信息。
看其中一个特征向量怎样穿过这些数据的中点,像一个最好的拟合直线。
特征值显示给我们这两列数据怎么样沿着那条线相互联系起来。
因此经过获取协方差矩阵的特征向量,我们能提前出一条表示数据特征的一条线。
第五步:
选择主成份,形成一个特征向量
下面是数据压缩的表示和维数减少的介绍。
如果你从前面的部分观察特征值和特征向量,你会注意到特征值是差别很大的。
事实上,经过证明最大特征值对应的特征向量是数据集的主成份。
在我们的例子里,对应较大特征值的特征向量是指向数据中间的。
它是和数据的维数有最大的关系。
(inourexample,theeigenvectorwiththelargeseigenvaluewastheonethatpointeddownthemiddleofthedata.Itisthemostsignificantrealtionshipbetweenthedatadimensions.)
一般,从协方差矩阵中求出特征向量,下面就是从高到低的排列特征值。
也就是根据重要性排列了主成份。
如果有你想忽略那些不太重要的成分,那么你就会失去数据的信息。
如果它对应的特征值非常小,那么信息丢失不会很多。
如果你省去一些成分,那么最好的数据将会比原始的数据维数少。
如果你用n維数据,那么你就会得到n个特征值和特征向量,那么你选择前p个特征向量,那么你得到的最好数据集就会有p維。
现在要做到的就是形成一个有特征的向量(featurevector),从下面的所有特征向量里选出你想保留的,形成一个矩阵按列。
以我们的数据来计算,我们能获得2个特征向量,我们有两个选择,我们可以从两个中任取一个:
或者,我们能选择舍弃一个较小的,相对较小重要性的成分,保留一个单列:
下面的部分我们将展示两列中的每列。
第五步:
生成新的数据集
这是PCA的最后一步,也是最容易的一步。
一旦我们已经选择了主成份(特征向量),我们希望隐瞒我们的数据形成一个具有特征的向量,我们可以简单的用向量的转换,对数据左乘向量。
式中,RowFeatureVector是列排列的转换矩阵,最大重要性的特征向量在顶端。
RowDataAdjust是经过均值调整的数据,列排列,每行是一个独立的一維。
这给了我们什么?
它告诉我们原始数据以我们选择的向量来表示。
我们的原始数据有两个轴x,y。
数据可以表示为任何的两个轴。
如果两个轴是正交的,那么表达比较有效。
这就是为什么特征向量正交如此重要。
经过这样转换,我们的原本以x,y轴的数据转换到了以特征向量为轴的数据。
为了显示对我们数据的将維,我用每个可能的特征向量进行了转换。
我也用曲线图表示了他们和主成份之间的关系。
在2維特征向量转换的情况下,获得了数据并且曲线展示如图3.3。
新获得的数据是以特征向量为轴的。
另外一种形式的转换,是我们紧考虑对应最大特征值的特征向量进行转换。
图3.4展示了该种转换。
如预料的一样,它仅有一維。
如果用该组数据集和进行2維转换的数据对比,你会发现这组数据正好是那组数据的第一列。
因此,我们从曲线图可以看出,这些点是围绕在X轴的周围。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成分 分析