PCA(2):PCA算法实现的两种方式
生活随笔
收集整理的這篇文章主要介紹了
PCA(2):PCA算法实现的两种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為樣本個數和特征維度的是不相等de,所以組成的矩陣不是方陣。
第一種方式:特征分解思路(特征值分解要求分解的矩陣是方陣)
基于樣本特征維度,先求協方差矩陣---->再特征分解(因為協方差矩陣是方陣,所以可以使用特征分解的思路)
第二種方式:SVD分解(SVD分解不要求矩陣是方陣)
SVD理論:https://blog.csdn.net/m0_37957160/article/details/107082668
任何矩陣都可以進行SVD分解。
事實上在數據量很大時,求協方差矩陣,然后在進行特征分解是一個很慢的過程,因此在PCA背后的實現也是借助奇異值分解來做的,在這里我們只要求得奇異值分解中的左奇異向量或右奇異向量中的一個(具體求哪個是要根據你的X向量的書寫方式的,即行數是樣本數還是特征數,總之左奇異向量是用來壓縮行數,右奇異向量是用來壓縮列數,而我們的目的是要壓縮特征數)
PS:使用PCA算法不管利用哪種分解方式,一定是對樣本的協方差矩陣進行分解,因為只有協方差矩陣才能反應特征維度之間的關系。
------------------------------------------從特征值特征向量到矩陣SVD奇異值分解np.linalg.svd()函數
下邊是借助Numpy的SVD分解實現:
?
總結
以上是生活随笔為你收集整理的PCA(2):PCA算法实现的两种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SVD与PCA的区别
- 下一篇: PCL调错(2):VTK报错