PCA(主成分分析)获取BoundingBox&代码分析

引言

最近要用到PCA获取目标点云的BoundingBox,但是网上给出的有关PCA的代码大都太简洁了,我觉得可能是大佬觉得比较简单,没有详细描述。这里记录一下自己的探究结果,方便大家理解。欢迎留言讨论,如有错误,请批评指正。

理论

PCA(Principal Component Analysis)是一种十分常用的数据降维方法,其主要思想是通过线性变换的方法,将一组高维数据投影成互不相关的低维数据,保留原始数据最关键、最具代表性的数据,以压缩数据量、加速运算过程。

通过问题概述PCA推导过程:

  1. PCA的目标是对原始数据进行降维,怎么降维呢?
    由于数据是基于一组N维正交基表示的,因此可以将原始数据进行重新投影,投影到新的一组K维正交基上,当K<N时,即可达到降维的目的。

  2. 那么新的正交基需要满足哪些条件呢?
    为了最大程度保留原始数据的信息,需要使降维以后的数据尽可能的分散。也就是说,新的正交基需要保证降维数据的分散程度达到最大。而数据的分散程度通常使用方差来描述,即新的正交基要保证降维后数据的方差和达到最大。当然,还需要保证基之间相互正交。

  3. 具体怎么求呢?
    在实际求目标正交基的时候,需要同时保证降维后数据的方差和最大、基之间相互正交。在数学上,数据的协方差矩阵的对角线元素描述的是数据的方差,非对角线元素描述的是数据的协方差,即变量之间的相互关系。因此上述两条件可以统一到协方差矩阵里,而且降维前后协方差矩阵满足关系: D = P C P T D=PCP^T D=PCPT D D D为降维后数据协方差矩阵, C C C为原数据协方差矩阵。因此,目标就变成了求解矩阵 P P P,使得上述等式中 D D D为对角阵(对 C C C进行对角化),且 P P P P C P T PCP^T PCPT中最大的前 K K K个(保证方差和最大)对角线元素对应的特征向量组成的矩阵。

  4. 算法步骤
    1)求原数据协方差矩阵 C = 1 / m ∗ X X T C=1/m*XX^T C=1/mXXT
    2)求出协方差矩阵 C C C的特征值及对应的特征向量;
    3)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前 K K K行组成矩阵;
    4) Y = P X Y=PX Y=PX即为降维到

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值