[非監督]PCA(降維)

Dimension Reduction(降維)

有些時候高維的空間的資料可以以低維空間來表示。

[非監督]PCA(降維)_第1张图片
[非監督]PCA(降維)_第2张图片
[非監督]PCA(降維)_第3张图片

PCA主成分分析(Principal Component Analysis)

基本概念

[非監督]PCA(降維)_第4张图片
3個向量正交

再做PCA時需要先做Standardization,因為特徵的單位差異太大會對運算造成影響。
假設我們有一組數據,有3個特徵分別是生命、攻擊、防禦,共有N個樣本(,,)。
我們先看攻擊跟防禦數據分佈如下:

[非監督]PCA(降維)_第5张图片

我們知道向量,在上的投影為,我們要找一個向量能使的變異數最大,的長度必須等於。如此我們會得到一個將3維特徵降為1維。
若要降為2維則再求,的長度也必須等於,且要使,兩個向量互相正交,如此我們會再得到一個。






[非監督]PCA(降維)_第6张图片

[非監督]PCA(降維)_第7张图片

[非監督]PCA(降維)_第8张图片
3個向量正交

協方差、共變異數(cov)

協方差

的cov matrix(協方差矩陣):

PCA運算

我們要求,可以經過以下推導:

[非監督]PCA(降維)_第9张图片

是半正定的矩陣(他的都是非負的) ,solution 為對應的的,為對應的的。
線性代數--解eigen
將式子轉成,然後對各維度的向量做偏微分再整合成eigen形式即可求。

[非監督]PCA(降維)_第10张图片
[非監督]PCA(降維)_第11张图片
[非監督]PCA(降維)_第12张图片
[非監督]PCA(降維)_第13张图片

實作

數據降維

  • 資料處理
    資料處理相關預備知識
    這是去kaggle抓的pokemon數據集,網址。
    我們為了簡化先把部分資料移除,剩下連續型數據資料。
    [非監督]PCA(降維)_第14张图片
  • 轉成numpy矩陣
    [非監督]PCA(降維)_第15张图片
  • PCA計算
    先做特徵縮放,然後求cov(x)跟eigenvalue跟eigenvextor,然後eigenvextor依對應的eigenvalue大小順序由大到小排序,最後取出前k個eigenvextor與內積求得。這裡是。
    [非監督]PCA(降維)_第16张图片
  • 結果(6維轉4維)
    [非監督]PCA(降維)_第17张图片

影像降維

將每張image展開,一張 image為一個特徵,但平均值是每點pixel的平均。
gist程式連結

[非監督]PCA(降維)_第18张图片

PCA的特性

PCA是非監督式的,不考慮到label,可能會造成不同label重疊再一起,而無法分辨,這時可以考慮用LDA,LDA是監督式的,但它們沒辦法做非線性的降維,這時可以用autoencoder,另外還有t-SNE。

[非監督]PCA(降維)_第19张图片
[非監督]PCA(降維)_第20张图片
由PCA觀點看NN(神經網絡)

參考李宏毅老師ML課程

你可能感兴趣的:([非監督]PCA(降維))