旋转成分矩阵结果分析_PCA(主成分分析) 和 SVD (奇异值分解)
PCA 和 SVD
协方差矩阵
在上一篇 最小二乘法 的末尾提到了协方差矩阵以及用它来拟合,这里先再次回顾。
我们来观察一下:
假设有一堆点
我们可以用式子表示出来投影的点在直线上的方差:
点在直线上的投影:
代回 var(l):
其中
S也就是协方差矩阵C的 n 倍:
PCA Principal component analysis - 主成分分析
PCA 是很重要的概念,不仅在 CG 中, 在 ML 中也有它的一席之地。正如 PCA 的名称一样, PCA做的事情是如果给我们一堆数据,它可以帮我们分析出最主要的部分。
如果给我们一堆 2d 的点, PCA 可以帮我们找出距离这些点最近的直线,比如下图的 x' 轴。
如果给我们一堆 3d 的点, PCA 可以帮我们找出最能代表这些点的平面:
PCA 的很大一个用途是可以帮我们找 bounding box,这样可以做一些快速的相交测试,毕竟 ray-box-intersect 应该比 ray-object-intersect 简单许多。 而 PCA 可以给我们最紧密的 bounding box,比如下图:
PCA 当然还有许多其它的用途。
有第一部分的结论:
散布矩阵
可以用来很好的展示点的分散程度.
因为
上述过程就是求 PCA 的过程:
- 算出质心 :
- 求
:
- 散布矩阵 :
其中 Y 的列为
- 特征分解 :
- 特征值排序 :
- 特征向量排序 :
- 取出我们需要的部分
看下图例子:
左边,点是没有一个特别的分布方向的,得到的散布矩阵会像这样:
右边,点有一个主要的分布方向,得到的散布矩阵会像这样:
PCA 的另一个常见的用途, CG 或者 ML 中,那就是降维。也就像最上面举的例子,2d 变直线, 3d 变平面, 比如在 ML 中,我们的特征维度太多了,那么我们当然就可以做 PCA, 找出我们想要的‘主要成分’。
PCA的一些计算技巧
如果 A 为 mxn 矩阵, m >> n, 假设 m = 16k, n = 100, 那么
另一方面:
所以
SVD Singular value decomposition - 奇异值分解
第一次听到 ‘奇异值分解’ 也是觉得这个名字怪神秘的。其实一点也不神秘,奇异值分解就是对我们一般的 mxn 矩阵 A,我们可以把它分解成:
正交矩阵 x 对角矩阵 x 正交矩阵, 其中对角矩阵 Σ,上的对角线值
方形的矩阵奇异值分解:
长方形矩阵可以有两种分解方式:
下面这种要在对角阵中填一些0:
所有 3x3 矩阵可以分解成 旋转,缩放,旋转就是因为SVD:
SVD 的用途非常广泛。
求
已知
所以 Ax=b 也可以立刻解出来了。
rank (A)
rank A 当然也就可以立即求出来了。
PCA
如果我们有了 Y矩阵 (Y 的列为
首先,V 是旋转矩阵, 本身正交:
形状变换
SVD 的另一运用,比如我们有以下形状,我们想通过旋转和位移,让独角兽尽量的靠近成狮子。当然它们比较对齐的时候,我们当然就是希望标注的点之间的距离尽量变小,也就是右图中我们连接红色和灰色的点所得到的距离尽量最小。
- 狮子 :
- 独角兽 :
假设旋转矩阵为 R, 位移为 t,那么我们需要最小化的是:
首先我们需要让它们的质心在同一位置,也就是:
也就是:
其次我们展开:
令
其中:
所以:
其中
也就是我们需要最大化:
观察矩阵:
可得:
也就是我们需要最大化矩阵
矩阵的迹有性质 tr(AB) = tr(BA), 所以:
V,R,U都是正交矩阵,所以
而
所以当
参考:
- <PCA and SVD> by Olga Sorkine-Hornung
旋转成分矩阵结果分析_PCA(主成分分析) 和 SVD (奇异值分解)相关推荐
- 旋转成分矩阵结果分析_30分钟学会PCA主成分分析
PCA主成分分析算法(Principal Components Analysis)是一种最常用的降维算法.能够以较低的信息损失(以样本间分布方差衡量)减少特征数量. PCA算法可以帮助分析样本中分布差 ...
- SPSS因子分析中成分矩阵、旋转成分矩阵和成分得分系数矩阵的区别
- matlab矩阵及其基本运算—特征值分解和svd奇异值分解
特征值分解 函数 eig eig: Find eigenvalues and eigenvectors 格式 d = eig(A) %求矩阵A的特征值d,以向量形式存放d. d = e ...
- pca各个向量之间的相关度_PCA主成分分析
降维就是一种对高维度特征数据预处理方法.降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的.降维的算法有很多,比如奇异值分解(SVD).主成分分析(PC ...
- 基于相关性分析和主成分分析的变量筛选方法
基于相关性分析和主成分分析的变量筛选方法 https://www.zybuluo.com/notmylove/note/1508052 主成分分析法 指标筛选 既然在课程专题四中讲到主成分分析法,那么 ...
- 业务数据分析中可能用到的简单的数据挖掘方法——相关性分析、主成分分析、因子分析
业务数据分析中可能用到的简单的数据挖掘方法--相关性分析.主成分分析.因子分析 相关性分析 相关性分析通过相关系数来描述两个变量之间的相关性程度. 通过相关系数判断两者会不会相互影响,影响是正相关还是 ...
- 算法练习day8——190326(猫狗队列、转圈打印矩阵、旋转正方形矩阵、反转单向双向链表、数N的加法组合)
1.猫狗队列 [题目] 宠物. 狗和猫的类如下: public class Pet {private String type;public Pet(String type) {this.type = ...
- NYOJ 598 旋转圆柱矩阵
旋转圆柱矩阵 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 将圆柱体的侧面展开能得到一个m*n的矩形.这是姑且看成一个01矩阵, 我们需要通过特定的移动得到另一个矩阵( ...
- 数据结构与算法之转圈打印矩阵和旋转正方形矩阵
数据结构与算法之转圈打印矩阵和旋转正方形矩阵 目录 转圈打印矩阵 旋转正方形矩阵 1. 转圈打印矩阵 题目描述 代码实现 public class Code_PrintMatrixSpiralOrde ...
最新文章
- AAAI 2021: 微调对小样本学习究竟起何作用?搜索或是解决方案
- 修改Centos7默认yum源为阿里云源
- matlab中句点,matlab入门学习(一)
- HDU 3488 KM
- 移动云帮我养出了一片致富鱼塘
- 截取tomat指定时间的脚本
- SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
- 随机数相加等于固定值_excel随机函数出来的数相加等于一个想要的固定值
- jmeter登录配置
- 安装genymotion模拟器
- 大学十年(一个程序员的路程)(林锐博士)《1----9》【林锐的大学10年】
- 23、使用OpenCV和NCNN进行人物抠图并将背景设置成透明色
- 2021佛山高考成绩查询,2021佛山市地区高考成绩排名查询,佛山市高考各高中成绩喜报榜单...
- AUTOCAD二次开发-----删除一个图层里面的所有对象
- Mysql通过binlog恢复误删数据
- Windows10下Latex缺少sty文件时的安装方法
- linux下tar.bz2文件的 解压缩方法
- 安卓仿苹果音量调节_android自定义view仿照MIUI中音量控制效果
- Pandas 的melt的使用
- 第十二届“挑战杯”QG学子载誉归来,荣获全国决赛“一等奖”