Dimension Reduction(降維)
有些時候高維的空間的資料可以以低維空間來表示。
PCA主成分分析(Principal Component Analysis)
基本概念
再做PCA時需要先做Standardization,因為特徵的單位差異太大會對運算造成影響。
假設我們有一組數據,有3個特徵分別是生命、攻擊、防禦,共有N個樣本(,,)。
我們先看攻擊跟防禦數據分佈如下:
我們知道向量,在上的投影為,我們要找一個向量能使的變異數最大,的長度必須等於。如此我們會得到一個將3維特徵降為1維。
若要降為2維則再求,的長度也必須等於,且要使,兩個向量互相正交,如此我們會再得到一個。
協方差、共變異數(cov)
協方差
的cov matrix(協方差矩陣):
PCA運算
我們要求,可以經過以下推導:
是半正定的矩陣(他的都是非負的) ,solution 為對應的的,為對應的的。
線性代數--解eigen
將式子轉成,然後對各維度的向量做偏微分再整合成eigen形式即可求。
實作
數據降維
- 資料處理
資料處理相關預備知識
這是去kaggle抓的pokemon數據集,網址。
我們為了簡化先把部分資料移除,剩下連續型數據資料。
- 轉成numpy矩陣
- PCA計算
先做特徵縮放,然後求cov(x)跟eigenvalue跟eigenvextor,然後eigenvextor依對應的eigenvalue大小順序由大到小排序,最後取出前k個eigenvextor與內積求得。這裡是。
- 結果(6維轉4維)
影像降維
將每張image展開,一張 image為一個特徵,但平均值是每點pixel的平均。
gist程式連結
PCA的特性
PCA是非監督式的,不考慮到label,可能會造成不同label重疊再一起,而無法分辨,這時可以考慮用LDA,LDA是監督式的,但它們沒辦法做非線性的降維,這時可以用autoencoder,另外還有t-SNE。