|
|
|
|
移动端

2.3.10 PCA——通过主成分分析降维

《深度学习与计算机视觉:算法原理、框架应用与代码实现》本书全面介绍了深度学习及计算机视觉中最基础的知识,并结合最常见的应用场景和大量实例,带领读者进入丰富多彩的计算机视觉领域。作为一本“原理+实践”教程,本书在讲解原理的基础上,通过有趣的实例带领读者一步步亲自动手,不断提高动手能力,而不是枯燥和深奥原理的堆砌。本节为大家介绍PCA——通过主成分分析降维。

作者:叶韵来源:机械工业出版社|2017-10-23 16:35

开发者盛宴来袭!7月28日51CTO首届开发者大赛决赛带来技术创新分享

2.3.10  PCA——通过主成分分析降维

前面所讲例子中数据的相关性并不是很大,下面用图2-29中强相关的例子来测试一下,其协方差矩阵的本征向量仍然是(/2, /2)和(-/2, /2),对应的本征值分别为1.99和0.01。我们把原始数据投影在两个本征向量上之后的新的数据分布画出来,如图2-35b所示。

如图2-35所示,根据前面矩阵乘法的意义,我们既可以把这个过程按最原始的理解,认为是样本在两个正交方向上的投影,也可以理解为将样本旋转,让方差最大方向处在x轴。无论哪个理解,都可以看到数据的长短轴比是/≈1.4/0.1,数据在两个轴上的分布,无论是按照方差还是标准差,y轴的成分相对于x轴的主成分而言都非常小,所以可以只取第一个主成分,忽略掉第二个成分的贡献,这样就能利用其对应的本征向量把二维数据降到一维,也就是从图2-35b到图2-35c的过程。而这个过程相当于只保留了本征值最大向量对应的本征向量的方向,具体到计算就是让数据和这个方向的本征向量做点积。在这种近似后,可以把数据再“转”回原来的空间中,如图2-35d所示,可以看到虽然损失了一些信息,但是大体保留了样本分布的形状,是一种不错的近似。

这些例子讲的是二维的,推广到高维也非常直接,对于一个n维的数据,只要知道了数据的协方差矩阵,就可以直接对协方差矩阵求本征向量和对应的本征值,然后按照本征值排序。如果数据的维度间存在很强的相关性,则会观察到排在前面的本征值明显大于后面的本征值。这个时候就可以根据取前面的m(m<n)个本征向量作为新的m维空间的坐标轴所在,达到了从n维到m维的降维。降维操作也非常简单,就是把本征值最大m个作为一个新的矩阵,和原数据相乘就可以了。整个过程如图2-36所示。

注意到数据一上来有一步减去均值再除以标准差的操作,这个预处理通常是为了避免各个不同维度间变量量级差距太大带来的影响。减去均值在机器学习中是对数据预处理的一种基本操作,除以标准差则视需要而定。比如考虑二维情况,第一个维度方差是1?000,第二个维度只有1的话,那无论这两个维度间的相关性是多少,经过PCA之后找到的主成分方向都近似第一个维度。当然是否一定要做这样的预处理视情况而定。

有的时候除了对于输入数据要做这样的处理,对于PCA降维后的数据,根据后续处理需求的不同,也会需要做类似的操作。前面已经讲了变换后的数据每一维度的标准差就是本征值开方,所以这个处理如下:

在实际应用中,有可能因为选取的主成分比较多,而数据本身在一些维度上相关性极强,排在后面的本征值会过小,导致白化后得到一个过大的值,这种情况需要在分母里再加一个很小的但是计算可以接受的项ε:

这个操作通常被称为PCA白化。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网管员世界2007超值精华本

《网管员世界》是国内唯一一家专门面向网管员职业的刊物。本书是2006年《网管员世界》各期内容的汇集,内容权威、全面、时效性强,贴近应用...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊