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