從主成分分析(PCA)到奇異值分解(SVD)

2021-08-21 12:41:25 字數 1089 閱讀 7144

主成分分析(principal factor analysis),簡稱pca,是機器學習中非常常見的壓縮降維方法。為什麼需要壓縮降維?是由於高維的樣本本身存在冗餘、稀疏的特點,直接把高維樣本用於擬合或者模式識別,極其容易出現過擬合。而在處理實際問題時,與學習任務相關的也許僅是高維樣本的某個低維分布,因而需要降維。(舉個例子,如……)

pca的降維思想是,在高維的樣本空間中,尋找乙個低維的超平面,把所有高維樣本投影於此超平面上,得到低維樣本,並且使投影誤差最小,或者使投影得到的樣本最大可分。

緊接著上述提到的兩種性質,在描述pca的降維思想時,有以下兩種定義方式:

可以從數學推導上證明,兩種定義方式最終匯出的結果等價,可以得到一樣的演算法。(兩種方法的數學推導過程有時間再補充……)

(演算法流程待補充……)

總結來說,主成分分析涉及到計算資料集的均值x¯

x

¯和協方差矩陣

s s

,然後尋找協方差矩陣的對應於

m' role="presentation">m

m個最大特徵值的

m m

個特徵向量,從而得到投影矩陣。

pca與svd的關係主要體現在求解特徵向量的過程。在一般介紹pca演算法原理的資料中,均是要先求得樣本的協方差矩陣,然後從協方差矩陣中求解得特徵值和特徵向量。然而,對於歸一化的樣本,協方差矩陣s=

xxt' role="presentation">s=x

xts=

xxt(待補充數學證明),而某些svd的實現方法可以從樣本矩陣

x x

中直接求得,而不用先計算協方差矩陣,降低計算量,提高計算效率。

奇異值分解(singular value decomposition),簡稱svd,是線性代數裡乙個非常重要的概念。svd的目的是求取矩陣的特徵值和特徵向量,與矩陣的特徵分解有密切的聯絡。但與特徵分解不同的是,特徵分解要求矩陣必須為方陣,而奇異值分解則無此要求,所有矩陣都可以用svd求得其特徵值和特徵向量。

(此處補充svd的定義,左奇異矩陣、右奇異矩陣等,有必要再補充svd的求解過程)

(簡單的python實現)

(舉特徵臉的例子)

列舉一些相關**

pca:

奇異值分解(SVD)和主成分分析(PCA)

矩陣的奇異值是乙個數學意義上的概念,一般是由奇異值分解 singular value decomposition,簡稱svd分解 得到。如果要問奇異值表示什麼物理意義,那麼就必須考慮在不同的實際工程應用中奇異值所對應的含義。奇異值往往對應著矩陣中隱含的重要資訊,且重要性和奇異值大小正相關。每個矩陣 ...

pca主成分分析 PCA主成分分析(中)

矩陣 matrix,很容易讓人們想到那部著名的科幻電影 駭客帝國 事實上,我們又何嘗不是真的生活在matrix中。機器學習處理的大多數資料,都是以 矩陣 形式儲存的。矩陣是向量的組合,而乙個向量代表一組資料,資料又是多維度的。比如每個人的都具有身高 體重 長相 性情等多個維度的資訊資料,而這些多維度...

主成分分析PCA

主要參考這篇文章 個人總結 pca是一種對取樣資料提取主要成分,從而達到降維的目的。相比於上篇文章介紹到的svd降維不同,svd降維是指減少資料的儲存空間,資料的實際資訊沒有缺少。個人感覺pca更類似與svd的去噪的過程。pca求解過程中,涉及到了svd的使用。針對資料集d 假設di 的維度為 w ...