PCA演算法和例項

2021-07-22 13:03:10 字數 1439 閱讀 7425

演算法步驟: 

假設有m條n維資料。 

1. 將原始資料按列組成n行m列矩陣x 

2. 將x的每一行(代表乙個屬性字段)進行零均值化,即減去這一行的均值 

3. 求出協方差矩陣c=1/mxxt 

4. 求出協方差矩陣的特徵值以及對應的特徵向量 

5. 將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p 

6. y=px即為降維到k維後的資料

以這個為例,我們用pca的方法將這組二維資料降到一維 

因為這個矩陣的每行已經是零均值,所以我們可以直接求協方差矩陣:

然後求其特徵值和特徵向量,求解後的特徵值為: 

λ1=2,λ2=2/5 

其對應的特徵向量分別是: 

由於對應的特徵向量分別是乙個通解,c1和c2可取任意實數。那麼標準化後的特徵向量為:

因此我們的矩陣p是: 

可以驗證協方差矩陣c的對角化: 

最好我們用p的第一行誠意資料矩陣,就得到了降維後的資料表示: 

降維後的投影結果如下圖: 

pca本質上是將方差最大的方向作為主要特徵,並且在各個正交方向上將資料「離相關」,也就是讓它們在不同的正交方向上沒有相關性。 

因此,pca也存在一些限制,例如它可以很好地解除線性相關,但是對於高階相關性就沒有辦法了。對於存在高階相關性的資料,可以考慮kernel pca,通過kernel將非線性相關轉化為線性相關。另外,pca假設資料各特徵分布在正交方向上,如果在非正交方向上存在幾個方差較大的方向,pca的效果就大打折扣。 

pca是一種無引數技術,也就是說面對同樣的資料,如果不考慮清晰,誰來做結果都一樣,沒有主觀引數的介入,所以pca便於通用實現,但是本身沒有個性化的優化。

本文主要參考:

PCA演算法和例項

演算法步驟 假設有m條n維資料。1.將原始資料按列組成n行m列矩陣x 2.將x的每一行 代表乙個屬性字段 進行零均值化,即減去這一行的均值 3.求出協方差矩陣c 1 mxxt 4.求出協方差矩陣的特徵值以及對應的特徵向量 5.將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p 6....

PCA演算法和例項

演算法步驟 假設有m條n維資料。1.將原始資料按列組成n行m列矩陣x 2.將x的每一行 代表乙個屬性字段 進行零均值化,即減去這一行的均值 3.求出協方差矩陣c 1 mxxt 4.求出協方差矩陣的特徵值以及對應的特徵向量 5.將特徵向量按對應特徵值大小從上到下按行排列成矩陣,取前k行組成矩陣p 6....

PCA演算法筆記

此博文只是自己的學習筆記,不具參考價值 pca演算法將高維特徵轉換成低維特徵 非線性相關 同時減小計算量。將原始資料按列組成m mm行n nn列矩陣x xx m mm個屬性,n nn個樣本 將x xx的每一行 代表乙個屬性字段 進行零均值化,即減去這一行的均值,得到x x x 求出協方差矩陣c cc...