【碎片知识(9)】PCA (Principal Component Analysis) [主成分分析]

离开很久啦,从Ph.D.套磁开始到全部settle down花费了太久的时间,在上周也终于把研究方向定下来了,终于手头的事告一段落了。未来是跨度三到四年的research生涯,无数师兄师姐告诫我,读博,尤其是在国外一个人读博是一个漫长和痛苦的过程(莫名心头响起“时间是一把刀【哭】”的声音)。慢慢的记录自己学过的东西和心得,借助网络和CSDN Blog这个平台大家一起讨论和进步!

之前关于Learning OpenCV 3的个人翻译后续会有更新,之前的工作因为个人水平所限虽然翻译了不少但是没有贴在网上,后续校准之后会陆续放出来。

另,提一句,本人研究方向大体是机器人立体视觉方向,身在大不列颠一所研究型大学读Ph.D.,如果有想聊机器人立体视觉方面的问题可以直接撩我哈~当然,想找大不列颠Ph.D.小伙伴也可以撩,小子不才在腐国也待了不短的一段时间了,多少能给一些建议的说。

  1. PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。

  2. 以下内容来自PCA数学原理

http://www.360doc.com/content/17/1006/09/48112216_692562036.shtml

  • 数据的向量表示及降维

比如淘宝某网店一天的统计数据为:(日期,浏览量,访客数,下单数,成交数,成交金额),这一组数据可以看做是一个6维空间中的向量。而许多数据算法的复杂度与数据的维度成指数关系。

所以过多的数据维度是不可接受的,那么这将会涉及到数据降维问题。比如“日期”仅为标识性数据,可以直接删除。而“访客数”和“下单数”成正相关,可以利用某种权重系数用更少的维度代表更多维度的信息。

  • 内积投影

向量的内积就是一向量在另一向量上的投影与另一向量的模的乘积。

如果向量B的模为1,则:

描述某一确定向量时会需要用到一组基底,和相应基底中的坐标值特征值)。例如向量(3,2)是在基底(1,0)和(0,1)中特征值分别为3和2的表示。

  • 基变换的矩阵表示

两个矩阵相乘的意义是将右边矩阵中的每一列向量变换到左边矩阵中每一行行向量为基所表示的空间中去

‘pi’是行向量,表示第i个基,‘aj’是列向量,表示第j个原始数据记录。

  • 协方差矩阵及优化目标

在第四步中讨论了对同一组数据在不同维度中转换的方法,而左边基的维度小于右边基则达到了降维目的。

1)降维逻辑

将一组N维向量降为K维(K大于0小于N),其目标是选择K个单位(模为1)正交基,使得原始数据变换到这组基上后,各字段两两间协方差为0,而字段方差则尽可能大(在正交的约束下,取最大的K个方差)

2)协方差矩阵

设有m个n维数据记录,将其按列排成n乘m的矩阵R。对每一行上的字段元素都减去这一字段的平均值,从而得到新矩阵X,这样X的字段平均值都为0。设,C是一个对称矩阵,其对角线为各个字段的方差,而第i行j列的元素与第j行i列的元素相同,表示i和j两个字段的协方差。

3)协方差矩阵对角化

设原始数据矩阵X对应的协方差矩阵为C(),经过基底P的变换之后X变为Y(),且假设Y的协方差矩阵为D(),则:

4)所以目的变为寻找一个矩阵P,满足是一个对角矩阵,并且对角元素按从大到小排列,那么P的前K行就是要寻找的基,用P的前K行组成矩阵乘以X就使得X从N维降到了K维,从而满足了降维条件。

  • 为何采用协方差矩阵:协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差(即能量),其他元素是两两维度间的协方差(即相关性)。让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。
  • 一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个向量为e1, e2, …, en,将其排列成矩阵:

                                                                          

                                                                    

其中为对角矩阵,其对角元素为各特征向量对应的特征值。

于是我们知道

  • PCA算法总结:

1)假设:有m条n维数据;

2)将原始数据组成n行m列矩阵X;

3)将矩阵X的每一行进行零均值化(减去这一行的均值);

4)求出协方差矩阵

5)求出协方差矩阵的特征值及对应的特征向量;

6)将特征向量按对应特征值的大小从上到下按行排列成矩阵,取前K行组成矩阵P;

Y=PX即为降维到K维后的数据。

  • PCA算法的局限性:

1)PCA算法可以很好的解决线性相关性,但是对于高阶的相关性作用不大(Kernel PCA);

2)PCA算法的主特征取得是正交方向上的,如果某情况主特征多分布在非正交情况,PCA算法的效果就会下降了;

3)PCA技术是一种通用技术,没有针对性,便于普遍实现,但是具体案例不同,PCA不一定是最合适的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值