SVD/PCA的分析只需要一行代码即可实现,但是要理解背后的原理,可能需要从特征值和特征向量开始。第一次接触特征值是在SPM里,那时候连怎么发音都不知道。就像这个slide讲的一样,spm有一个按钮,按了就可以提取,可以理解为一个summary value。

以下内容95%整理自油管视频,都是基于2d的数据,只整理了与特征向量相关的内容,推荐前往观看有动画的原片4/6/13/14集。

https://youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

矩阵和向量相乘

假设ij是在坐标轴上的两个单位向量

任何向量v都可以用这两个向量表示,因为ij就是在坐标轴上的单位向量,所以v就是[x y]'。

旋转和拉伸ij

如果对于v做同样的变换,那么v同样可以用经过变换的L(i)L(j)表示

也就是可以用i和j的新坐标来表示新的v的坐标

一个2x2的矩阵就可以看成是一个变换矩阵

这个矩阵和向量相乘,相当于将矩阵中的变换运用到右边的向量上,结果是新的向量

比如

矩阵和矩阵相乘

M1和M2相乘,相当于对于坐标轴上的单位向量ij先做M1的变换后做M2变换。

先根据M1进行变换

再根据M2进行变换

也可以理解为对M1中的两列分别做M2的矩阵变换。

对M1中的第一列向量做M2的变换

M1第二列的变换也如此

更general的公式是

特征值和特征向量

比如有这么一个变换矩阵

对于一个向量

运用矩阵变换后,这个向量不再在之前的span上了。

但对于有的向量

在同样的变换之后,仍然会在之前的span上。

比如x轴上的一个向量经过变换后仍然在x轴上,只不过是伸缩了3个单位。

同样在对角线上的向量

经过变换后在同一个span上,伸缩的值是2.

这样经过矩阵变换,仍然在自己span上面的向量就是这个变换矩阵的特征向量,伸缩变化的值就是特征值

用公式表达如下,其中A就是变换矩阵,λ是特征值,v是特征向量

也就是说矩阵和向量相乘,等于scalar和向量相乘

因为λ是一个scalar,乘上单位矩阵之后交换到右边就可以求解特征值和特征向量了。

如果v是0的话也是成立的但是并不是想要的特征向量。所以需要(A-λI)这一个变换矩阵变换的结果是0,平面压缩成了一条线,相当于determinant=0

determinant(det)

它衡量的是一个变换矩阵对平面拉伸和旋转的改变有多少。

比如对于这个只有拉伸变换的矩阵

再看一个带shear的变换矩阵

同样的道理,可以知道平面内任何矩形的改变

任何形状可以用无数小方块来近似

这个变换矩阵对于平面的拉伸和旋转就是determinant,数值代表了平面内面积改变的多少,负数意味着整个平面都翻转了【flip】

关于计算公式

如果b=c=0

如果只有c=0

更general的公式

最后再举一个直观的例子,对于一个向量v,对它做A的矩阵变换,结果它并没有改变方向只是相当于做了拉伸。A*v=4*V

v=[1 2];
A=[2 1;2 3]
w = A*v';
w1=4*v'

figure
subplot(211)
plot([0 w(1)],[0 w(2)],'r-.','linew',3)
hold on
plot([0 v(1)],[0 v(2)],'k','linew',2)axis square
axis([ -1 1 -1 1 ]*max([norm(v) norm(w)]))
hold on
plot(get(gca,'xlim'),[0 0],'k--')
plot([0 0],get(gca,'ylim'),'k--')
legend({'A*v';'v'})subplot(212)
plot([0 w1(1)],[0 w1(2)],'g-.','linew',3)
axis square
axis([ -1 1 -1 1 ]*max([norm(v) norm(w)]))
hold on
plot(get(gca,'xlim'),[0 0],'k--')
plot([0 0],get(gca,'ylim'),'k--')
legend({'4*v'})

another example:

—END—

PCA | 特征值和特征向量相关推荐

  1. 主成分分析PCA以及特征值和特征向量的意义

    定义: 主成分分析(Principal Component Analysis,PCA), 是一种统计方法.通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分.P ...

  2. PCA和SVD,包好特征值和特征向量的理解

    本文转载自LeftNotEasy的https://blog.csdn.net/u010725283/article/details/79155204 前言: 上一次写了关于PCA与LDA的文章,PCA ...

  3. SVD 与 PCA 的直观解释(2): 特征值与特征向量

    这一部分主要讲特征值和特征向量背后的物理或者几何方面的直观解释. 参考地址:http://zh.wikipedia.org/wiki/%E7%89%B9%E5%BE%81%E5%90%91%E9%87 ...

  4. PCL:最小特征值与特征向量为什么可以表示法向量??

    求解点云法向:(基于局部平面拟合点云的法向量) 点云法向量求解需要其邻域内点支持,而邻域的大小一般由邻域半径值或临近点个数来表示.现实中需要根据点分辨率.物体细节精细程度和用途等因素来取值.过大的邻域 ...

  5. 特征值与特征向量的几何含义(转)

    全文转自blog:http://blog.csdn.net/lfkupc/article/details/4561564 长时间以来一直不了解矩阵的特征值和特征向量到底有何意义(估计很多兄弟有同样感受 ...

  6. c++向量和数组的区别_数学学习如此容易:用Python计算特征值和特征向量

    什么是NumPy? NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. NumPy 的前身 ...

  7. 特征值与特征向量的意义

    转载地址:http://blog.csdn.net/sunshine_in_moon/article/details/45749691 从定义出发,Ax=cx:A为矩阵,c为特征值,x为特征向量.  ...

  8. 特征值和特征向量的实际意义

    特征值和特征向量的实际意义 从定义出发,Ax=cx:A为矩阵,c为特征值,x为特征向量. 矩阵A乘以x表示,对向量x进行一次转换(旋转或拉伸)(是一种线性转换),而该转换的效果为常数c乘以向量x(即只 ...

  9. 特征值与特征向量_机器学习和线性代数 - 特征值和特征向量

    特征值和特征向量可能是线性代数中最重要的概念之一.从机器学习.量子计算.物理到许多数学和工程的问题,都可以通过找到一个矩阵的特征值和特征向量来解决. 根据定义(标量λ.向量v是特征值.特征向量A): ...

最新文章

  1. python 中类属性共享问题
  2. 如何根据分页的当前页数查询数据_数据量很大的情况下,如何分页查询优化方案?...
  3. docker 安装nginx 配置目录挂载
  4. java新建测试程序_java – 如何创建一个CloseableHttpResponse对象来帮助测试?
  5. go 多线程并发 queue demo
  6. 微信小程序接入腾讯地图sdk地图 用户自选位置。踩坑+代码实现
  7. RHEL5下源码配置LAMP全记录
  8. python databaselibrary_Robot Framework下DataBaseLibrary的使用
  9. 【原】关于AdaBoost的一些再思考
  10. layui结合springboot上传图片
  11. 论文浅尝 | 用于低资源条件下知识图谱补全的关系对抗网络
  12. 得到品控手册_得到品控手册 一本令人惊喜的说明书
  13. C++字节存储方式和reinterpret_cast
  14. Oracle内部错误ORA-07445[kpopfr()+339] [SIGFPE]一例
  15. 测试回归结果分析软件,“3414”试验数据分析软件设计原理
  16. 中国微控制器市场趋势报告、技术动态创新及市场预测
  17. 洛谷Java入门级代码之分汽水
  18. windows powershell 将U盘启动盘还原回普通U盘
  19. 【数据结构与算法】栈与队列【C语言版】
  20. python中def _init_是什么意思_python3类中的def __init()__如何使用?

热门文章

  1. 基于Java语言实现的采购管理系统
  2. 简单利用HUDText插件实现血条和怪物伤害减血效果
  3. 2017无忧题库计算机一级,[2017年整理]计算机二级vf无忧题库第90道.ppt
  4. 互联网测试岗位分类_测试工程师面试题及答案
  5. 智能制造发展的四个重点领域
  6. 设置PHP最长运行时间
  7. 半波整流图 matlab仿真,单相半波整流电路matlab仿真.ppt
  8. HX3001升压IC芯片-Synchronous Boost DC/DC Regulator
  9. 运维学什么语言,不要迷茫了进来看看
  10. C#之Socket的简单使用