本文共 1548 字,大约阅读时间需要 5 分钟。
PCA(Principal Components Analysis)主成分分析,应用于点云预处理,平面检测,法向量求解,降维、分类,解压(升维),用PCA对点云中的点分类,地面点,墙面点,物体上的点等,是一种数据降维技术,用于数据预处理。
PCA是将三维投影到某个面上,用于发现其主要方向。面的选择依据是选择尽量使得点的分布方差最大,分布较散的面,方差越大,它的信息量越大。例如:向量的内积:就是一个向量投影到另一个向量上去:
矩阵和向量的积就是向量和线性的组合:
SVD:Singular Value Decomposition:M=U∑V* ,也就是对一个矩阵旋转、伸缩、再旋转的过程。
1、谱定理:又叫普分解,适用于对称矩阵,也就是说可以用它的特征值特征向量的线性组合表示。 下图摘自《矩阵论》,感觉更容易理解: 二、瑞利熵: 下图摘自《矩阵论》,感觉比老师讲的更容易理解: 基础over1、PCA输入:多个高维向量的点,输出:多个点的主要向量,主要方向。
什么是主成分:使得投影数据点在该方向上的方差最大的一个方向。
如何得到次主成分:把主成分去掉再来一次PCA,第三四成分依次。 步骤: 首先将数据规范化为零均值: 然后对于每一个点,将其点投影到z上去: 计算方差: PCA要做的事情就是计算方差最大值,也就是红框内的最大值。即求: 此时将括号内看作一个矩阵的话,可以使用瑞丽熵和谱定理求解: 对X使用SVD: 有: 如果特征值由大到小排列,那么 Ur 的第一列就是最大特征值对应的特征向量。至此,我们找到了一个主方向,数据在这个方向上投影后,方差最大。U1=Z1 次方差求解:从原始数据中减去z1后在进行一次。将所有数据点投入到U1上再减去U1,写成矩阵的形式: 去掉最主要成分的点,使用SVD有: 所以U2: U2=Z2,Z3,A4依次计算即可。 总结: 1、去中心化 . 2、计算协方差H,使用SVD分解,按照特征向量大小从大到小排列. 3、主要方向就是 Ur中的列向量.1、降维(压缩):
就从n维降到了l维 2、解压:就是从l再到n 更多例子:上述PCA为线性PCA,那么怎么处理非线性问题呢?例如下面这种问题:
如果使用线性PCA,红绿会混在一起,并不能给出有效信息,这时候不妨对其进行升维操作,就会变得很直观: 上述操作即为Kernel-PCA,核PCA, 步骤: 1、假设均值为0: 2、计算H: 3、解特征值和特征向量: 证明:将H 的定义带入: 因为: 所以我们现在只要找aj就可以了。 将刚刚的结果带入有: 然后我们定义: 用左边代替上述结论,有: 两边同时乘一个: 得: 此时定义一个格拉姆矩阵K: 因为K是内积,可调换位置,所以K是对称的。所以 可以改写为:依然没有办法求解,因为划线的函数依然未知,可以采取:
去中心化: 常用的核函数: 只能通过经验和实验来确定使用哪个。 总结: 1、选择一个上述核函数,组合成: 2、 3、解K特征值: 4、 5、 结果示例: 处理前: 选择二次多项式: 结果: 选择高斯核函数: 结果:K-PCA的核心思想就是把高维空间的运算转化成低维空间的运算。
以上公式和图片基本来自于老师上课PPT,部分参考别的博主,部分摘自自己学的书里,仅作为存稿、学习,交流使用,不进行商业化活动。
觉得有用记得点赞! 觉得有用记得点赞! 觉得有用记得点赞!转载地址:http://ncexi.baihongyu.com/