Pca
當維數大於觀測數時,PCA 是否仍然通過協方差矩陣的特徵分解來完成?
我有一個矩陣,包含我的中的樣本維空間。我現在希望在 Matlab 中編寫我自己的主成分分析 (PCA)。我貶低到第一的。
我從某人的代碼中讀到,在這種情況下,我們的維度多於觀察值,我們不再特徵分解的協方差矩陣。相反,我們特徵分解. 為什麼是正確的?
正態協方差矩陣的大小,其中的每個元素都告訴我們兩個維度之間的協方差。對我來說,甚至不是正確的尺寸!它是矩陣,那麼它會告訴我們什麼?兩個觀測值之間的協方差?!
協方差矩陣為大小並由下式給出
你說的矩陣當然不是協方差矩陣;它被稱為格拉姆矩陣並且是尺寸:
主成分分析 (PCA) 可以通過這些矩陣中的任何一個的特徵分解來實現。這些只是計算同一事物的兩種不同方法。
最簡單和最有用的方法是使用數據矩陣的奇異值分解. 將其代入表達式和,我們得到:
特徵向量協方差矩陣的主要方向。這些特徵向量上的數據投影是主成分;這些預測由下式給出. 縮放到單位長度的主成分由下式給出. 如您所見,Gram 矩陣的特徵向量正是這些按比例縮放的主成分。和特徵值和重合。
您可能會看到建議使用 Gram 矩陣的原因,如果是因為與協方差矩陣相比,它的尺寸更小,因此計算速度更快,特徵分解速度更快。事實上,如果你的維度太高了,甚至無法將協方差矩陣存儲在內存中,因此對 Gram 矩陣進行操作是進行 PCA 的唯一方法。但是為了便於管理如果您願意,您仍然可以使用協方差矩陣的特徵分解,即使.