[非監督]PCA(降維)
2018-11-29 本文已影响0人
RJ阿杰
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。

