PCA | 特征值和特征向量

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

b45ca1c890a75d1f3b53c0d009b75eb1.png

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

d400fa875d12b3ce11dae70df5ed330b.png

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

3deeb8caebd4d41d406cfddc50605566.png

矩阵和向量相乘

e9ec9ee3e32b60a47496826741095bc0.png

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

63be7326d5751df555507f6f7630b1ee.png

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

1cc02495b020448121f7ca9c9ee99920.png

旋转和拉伸ij

a38497e017aded50c38c8cebc7e5cd77.png

9142794df8fe695b84f41e459e672233.png

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

d3ecf413cb0d485a03971a9a3c62f883.png

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

b26a21bc5a57636dc0b94d456c6c0c53.png

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

edb1e3e9928a949d0f6d3f91952cf81c.png

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

df5c9f212d1551cbfc3d0dceda5a6606.png

比如

2deb2af5a6a94c043967b707babc53e1.png

7a92bce9a547041c1a5759290599f520.png

矩阵和矩阵相乘

9cd740ac0dd5201050d935e63e6fbda1.png

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

先根据M1进行变换

acba3c74dc0424cbdab0d5fe7d924fea.png

再根据M2进行变换

9117ec515aef7ab7c97eebcad3e2167d.png

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

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

6a02ba4d3016af89dda7183ba0a9f121.png

M1第二列的变换也如此

c5977a843515c3ecd54770a10666b6ec.png

更general的公式是

7f225b1d59a8f358b9ade8b199433c09.png

50033671caf72d211e431cfd3a8607e9.png

ed0553a7c7b17ed114b9a81b6e54440b.png

特征值和特征向量

f4ca95bfcb800338f8ed73ecf8459b1b.png

比如有这么一个变换矩阵

3d8586390d0ebc53dc1b1087c7593768.png

对于一个向量

9491c7cabf209a52fe1827f85d4162d7.png

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

91049fbfbd01ce345f9968983d2592e6.png

但对于有的向量

6ecdcf8f53105b0f04bd0caa0417f1bd.png

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

2684ec9458b266178b908acdc32247fa.png

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

eeeabe005be992c071bce8e5d948069d.png

同样在对角线上的向量

0510ac34ee97b644246804e614551c1a.png

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

2a77f568fcbebaeba6ac501ffd466ec7.png

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

b964d96f52e4f93886e30e56e3a5ae1c.png

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

87616d48df42a6e32dac71ebdadac753.png

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

355b13b9eeda79ed37df2af0cea491ec.png

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

c5105f7928ad151ea0e053d2f0e2cc64.png

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

fe23f15d6d9ebf08e1b9665377c2cc67.png

2b8e7c21a308516b19dde3849f61d6f4.png

determinant(det)

47795b2f8e78443f6e98188fe2d1f9d8.png

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

9b11408a73e4bd2e6fb735af958721bc.png

2bd528ca0af54f76767de3154f44f64b.png

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

a34b2d6a7f9d55fa07db763a90e53a6b.png

6f1b1ed2485c563155a22c45509c6210.png

再看一个带shear的变换矩阵

bc890fd36b71d233ecee0616a3a87d66.png

90e8de3370159fe8010e4c1888d3a0da.png

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

438da8b928304c437597ff5cf3fb68e5.png

a3d61a122b1de869673ec06acbca73ae.png

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

5c3a2aa15327a00346f82adfa1cdf969.png

ac39674dc5a0183128d74d1fc8242396.png


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

4cbbbc2ec213a8c26a64a714934b0026.png


关于计算公式

如果b=c=0

1e4174bf3c09da8cbf966524245445b2.png

如果只有c=04c353c377d560cd2d93aaeb2e9432d19.png

更general的公式

52d4eec2a0d9c634a11351d6d16aae79.png

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

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

14642177064391a0cf96e723a233dc21.png

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:

e1b9728a115aca3142e4e09048300fc9.png

—END—

359cd1d60c1ec3cb99a84498cb8328dd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值