博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三维点云处理:2 PCA(Principle Component Analysis主成分分析)和K-PCA
阅读量:4166 次
发布时间:2019-05-26

本文共 1548 字,大约阅读时间需要 5 分钟。

PCA(Principle Component Analysis主成分分析)

PCA(Principal Components Analysis)主成分分析,应用于点云预处理,平面检测,法向量求解,降维、分类,解压(升维),用PCA对点云中的点分类,地面点,墙面点,物体上的点等,是一种数据降维技术,用于数据预处理。

PCA是将三维投影到某个面上,用于发现其主要方向。面的选择依据是选择尽量使得点的分布方差最大,分布较散的面,方差越大,它的信息量越大。例如:

一、 在正式介绍PCA前我们先说一些基础的数学概念和两个公式:

向量的内积:就是一个向量投影到另一个向量上去: 在这里插入图片描述

矩阵和向量的积就是向量和线性的组合: 在这里插入图片描述

SVD:Singular Value Decomposition:M=UV* ,也就是对一个矩阵旋转、伸缩、再旋转的过程。

1、谱定理:又叫普分解,适用于对称矩阵,也就是说可以用它的特征值特征向量的线性组合表示。
下图摘自《矩阵论》,感觉更容易理解: 在这里插入图片描述
二、瑞利熵:
下图摘自《矩阵论》,感觉比老师讲的更容易理解:
瑞丽熵-1
瑞丽熵-2
基础over

二、Principle Component Analysis(PCA)解释和推导:

1、PCA输入:多个高维向量的点,输出:多个点的主要向量,主要方向。

什么是主成分:使得投影数据点在该方向上的方差最大的一个方向。

如何得到次主成分:把主成分去掉再来一次PCA,第三四成分依次。
步骤:
首先将数据规范化为零均值:
然后对于每一个点,将其点投影到z上去:
在这里插入图片描述
计算方差:
在这里插入图片描述
PCA要做的事情就是计算方差最大值,也就是红框内的最大值。即求:
此时将括号内看作一个矩阵的话,可以使用瑞丽熵和谱定理求解:
对X使用SVD:
有:
在这里插入图片描述
如果特征值由大到小排列,那么 Ur 的第一列就是最大特征值对应的特征向量。至此,我们找到了一个主方向,数据在这个方向上投影后,方差最大。U1=Z1
次方差求解:从原始数据中减去z1后在进行一次。将所有数据点投入到U1上再减去U1,写成矩阵的形式:
去掉最主要成分的点,使用SVD有:
在这里插入图片描述
所以U2:
在这里插入图片描述
U2=Z2,Z3,A4依次计算即可。
总结:
1、去中心化 .
2、计算协方差H,使用SVD分解,按照特征向量大小从大到小排列.
3、主要方向就是 Ur中的列向量.
在这里插入图片描述

三、PCA应用:

1、降维(压缩):

在这里插入图片描述
就从n维降到了l维
2、解压:就是从l再到n
在这里插入图片描述
更多例子:在这里插入图片描述
在这里插入图片描述

四、kernel-PCA:

上述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/

你可能感兴趣的文章
在单片机上点亮LED
查看>>
初学定时器
查看>>
数码管
查看>>
单片机数码管消隐及中断
查看>>
C#串口调试助手代码
查看>>
学习DS1820随记
查看>>
初学C#之windowes窗口应用文件
查看>>
linux常用命令
查看>>
Linux之vim(一)vim简介
查看>>
进程间通信的方式简单解析————管道
查看>>
git学习笔录
查看>>
Activity类中7个与活动生命周期回调有关的方法
查看>>
jwt与token+redis,哪种方案更好用?
查看>>
Comparator接口
查看>>
在二叉树中找到一个节点的后继节点
查看>>
寻找第K大
查看>>
String.trim
查看>>
缓存行 伪共享
查看>>
400 : perceived to be a client error 错误
查看>>
Establishing SSL connection without server's identity verification is not recommended
查看>>