Chapter 5 你真的看懂雙標圖嗎 ?
PCA 大概是資料視覺化最常用的工具之一了,儘管 Autoencoder 的出現讓 kernel PCA 變成一個很雞肋的方法,傳統的 PCA 分析至今也有很多人在使用。最常見的視覺化方法是取 PCA 前兩大主成分進行點散圖的分析,不過這樣我們就不能在圖表上觀察到行與行之間的相關信息,雙標圖正是用來解決這一問題而提出的方法
5.1 PCA 怎麼做
很多人學習 PCA 都只學表像,其實 PCA 遠比你想的複雜,假設我們有資料矩陣 \(X_{n\times p}\),最常見的看法是最大資料變異,也就是找到一個新空間 \(a\),使得資料投影上去後變異最大 (這裡假設資料已做過行中心化)
\[ \max_a \text{Var}(Xa) = \frac{1}{n}\max_a \frac{a^\top X^\top Xa}{a^\top a} \]
該式的解可以透過 Rayleigh quotient 解得 \(a\) 是 \(\frac{1}{n}X^\top X\) 最大特徵值對應的特徵向量,其實在最大變異的同時也在最小空間重構誤差 (詳見 MDS),故常見的 PCA 有以下觀點
- 降維後最大化資料之間的變異
- 降維後空間的投影誤差最小,同 MDS
最後一種看法是用 SVD 分解的角度看 PCA,根據 SVD 分解,我們有 \(X=U\Sigma V^\top\),其中 \(U\) 矩陣蒐集了 \(X^\top X\) 的特徵向量,\(V^\top\) 矩陣蒐集了 \(X X^\top\) 矩陣的特徵向量,其對應的奇異值被記錄在矩陣 \(\Sigma\) 裡,所以事實上一個 PCA 包含了三個物件
- 行間的特徵向量 (\(X^\top X\))
- 列間的特徵向量 (\(XX^\top\))
- 代表重要性的奇異值
資料處理手法
不同的資料前處理手法也會導致結果不同,常用的有五種,以下令 \(H=I_n - \frac{1}{n}J_n\),其中 \(J_n\) 為全 1 矩陣
- \(X:\) 不做處理,通常會抓到 \([E(X)]^2 + E(X^2)\)
- 如果資料之間的差距非常大,則 PC1 會因為平方關係一家獨大
- \(XH:\) 列中心化
- 一般使特徵料投影變異最大方法
- \(HX:\) 行中心化
- 一般使資料投影變異最大方法,也是最常用的 PCA
- \(HXH:\) 列行中心化
- 其實就是 MDS,重點在還原距離
- \(X - \frac{1}{n}1^\top X1:\) 全中心化
- 同不做處理,資料之間差距非常大也會影響圖表造成只有 PC1 重要
之後我們可以再決定要不要除上標準差。
注意!! 除上標準差的 PCA 會因為尺度縮減導致解釋變異比平均較為分散到所有主成分
5.2 Biplot
雙標圖是一種結合 PCA 降維結果以及原始資料行之間與主成分線性組合關係的圖表,綜上所述,不同的資料前處理手法也會影響雙標圖的呈現結果
怎麼畫
我們首先畫出降維後資料的點散圖,我們通常會乘以一個縮放係數來確保資料的範圍不會差異太大,最後我們知道 PCA 主成分其實是原始空間的線性組合,所以我們可以把原資料在前兩主成分的係數畫在 PC1 vs PC2 上,當然係數絕對值越大代表該特徵越顯著,具體步驟如下
- 降維資料建立點散圖
- 縮放資料 (除上資料的全距)
- 根據原資料在主成分上的座標 (線性組合),畫出 arrow
除此之外,雙標圖還有很好的內積性質,arrow 之間的夾角代表相似度,可以想像是餘弦值
- 垂直\(:\) 無關
- \(<90:\) 正相關,角度越小越相關
- \(>90:\) 負相關,角度越大越不相關
進階圖表
有些雙標圖會新增一些物件來幫助判讀更多信息
- 多邊形: 沿著 biplot arrow 距離原點最遠的點連成的多邊形 (資料降維範圍)
- 平均線: 畫上 biplot arrow 的平均線 (線性組合平均趨勢)
- 平均位置: 畫上 biplot arrow 的平均點 (線性組合重心)