主成分分析(PCA)
有任何問題可以聯系jimmy_huang136@163.com或者在下方留言
1.概念
對信息進行降維處理,只保留一個維度的信息;PCA的目的就是找到一個坐標系,使得數據在只保留一個維度時,保留的信息最多(如下圖所示)

2.目標
點投影到新的坐標系時,點比較分散(方差最大),此時保留的信息最多。尋找坐標軸即是目標
3.基本步驟
- 去中心化(把坐標原點放在數據的中心)
- 找坐標系(找到方差最大的方向)
4.如何找到方差最大的方向
拉伸
\[SD = \begin{bmatrix} 2 & 0\\ 0 & 1\\ \end{bmatrix} * \left[ \begin{matrix} x_1 & x_2 & x_3 & x_4\\ y_1 & y_2 & y_3 & y_4\\ \end{matrix} \right]\tag{1} = \begin{bmatrix} 2x_1 & 2x_2 & 2x_3 &2x_4\\ y_1 & y_2 & y_3 & y_4\\ \end{bmatrix} \]
SD表示的是進行拉伸操作,其中S為拉伸矩陣(只有對角線上有數字)
旋轉
\[RD = \begin{bmatrix} cos(𝜽)&-sin(𝜽)\\ sin(𝜽)&cos(𝜽)\\ \end{bmatrix} * \begin{bmatrix} x_1&x_2&x_3&x_4\\ y_1&y_2&y_3&y_4\\ \end{bmatrix}\tag{2} \]
RSD 即旋轉且拉伸
旋轉的角度決定了最大的方向的角度
拉伸決定了方差最大的方向是橫或者縱
5.白數據變化過程
白數據即為x,y都是標准的正態分布,且x,y互不干涉,協方差為0
graph LR; 白數據D --> 拉伸SD --> 旋轉RSD -->我們手上的數據D'=RSD
6.如何求R(反推法)
協方差矩陣的特征向量即R
協方差的定義
\[cov(x,y) = \frac{\sum^{n}_{i=1}(x_i-\overline{x})(y_i-\overline{y})}{n-1}\tag{3} \]
協方差表示的是:兩個向量在變化過程是同方向變化?還是反方向變化?同向或反向程度如何?
協方差=0表示不相關;>0表示正相關;<0表示負相關
eg.比如x在增大,y也隨着增大,那么協方差就大於0
\[x\uparrow \longrightarrow y\uparrow \longrightarrow cov(x,y) > 0 \]
協方差矩陣
這里的協方差矩陣對稱陣,對角線是方差
\[C = \begin{bmatrix} cov(x,x)&cov(x,y)\\ cov(x,y)&cov(y,y)\\ \end{bmatrix}\tag{4} \]
eg.如下圖所示,在拉伸旋轉過程中,協方差矩陣里面的值也會跟着改變
協方差矩陣演算
代入cov可得:
\[C = \begin{bmatrix} \frac{\sum^n_{i=1}x_i^2}{n-1} & \frac{\sum^n_{i=1}x_iy_i}{n-1}\\ \frac{\sum^n_{i=1}x_iy_i}{n-1} & \frac{\sum^n_{i=1}y_i^2}{n-1}\\ \end{bmatrix} \]
\[=\frac{1}{n-1}\begin{bmatrix} x_1&x_2&x_3&x_4\\ y_1&y_2&y_3&y_4\\ \end{bmatrix} \begin{bmatrix} x_1&y_1\\ x_2&y_2\\ x_3&y_3\\ x_4&y_4\\ \end{bmatrix} \]
\[=\frac{1}{n-1}DD^T \]
得到如下結果:
\[C = \frac{1}{n-1}DD^T\tag{5} \]
於是我們手上的數據D ' 的協方差就為:
\[C' = \frac{1}{n-1}D'D^{'T} \]
代入D' = RSD,可得
\[C' = \frac{1}{n-1}RSD(RSD)^T \]
\[=\frac{1}{n-1}RSDR^TS^TD^T = RS(\frac{1}{n-1}DD^T)S^TR^T \]
將(5)帶入其中,由於我們取D為白數據,所以C即為單位矩陣,可得:
\[= RSS^TR^T:\\ 又由於S(拉伸),R(旋轉)的特質可得\\ \]
\[S = S^T \qquad R^T= R^{-1}\\ let:\qquad L = SS^T = \begin{bmatrix} a^2&0\\ 0&b^2\\ \end{bmatrix} \]
\[so:\qquad C' =RLR^{-1}\tag{6} \]
特征值與特征向量
由於C'是2*2的矩陣,所有就有兩個特征值和特征向量,經過變化可得我們要求的R就是兩個特征向量組合起來


所以需要求的R:
\[R = \vec{v_1}\vec{v_2}\tag{7} \]
v1向量即為新坐標系的x軸方向,v2向量即為新坐標系的y軸方向,這里還有關於特征值的一點:
\[L = \begin{bmatrix} 𝛌_1&0\\ 0&𝛌_2\\ \end{bmatrix}=SS^T =\begin{bmatrix} a^2&0\\ 0&b^2\\ \end{bmatrix} \]
如果我們進行反推
\[\qquad 我們手中的數據D'\longrightarrow (逆旋轉)R^{-1}D'\longrightarrow S^{-1}R^{-1}D' \longrightarrow 白數據D \]
這里可以這樣推導協方差矩陣:
\[D'\longrightarrow C'\\ R^{-1}D' \longrightarrow C_1 = L \]
7.PCA具體流程
graph LR; 數據-->去中心化-->協方差矩陣; 協方差矩陣-->特征向量-->坐標軸方向; 協方差矩陣-->特征值-->坐標軸方差;
8.三維降二維(略)
9.PCA的缺點
離散點對於整個降維過程的影響比較大,如果數據離散點比較多,建議采用其他降維方法
10.PCA與SVD
奇藝值分解Singular Value Decomposition(SVD)
\[D^T = UΣV^T\\\tag{8} \begin{bmatrix} x_1&y_1\\ x_2&y_2\\ x_3&y_3\\ x_4&y_4\\ \end{bmatrix} = \begin{bmatrix} -&-&-&-\\ -&-&-&-\\ -&-&-&-\\ -&-&-&-\\ \end{bmatrix} \begin{bmatrix} a&0\\ 0&b\\ 0&0\\ 0&0\\ \end{bmatrix} \begin{bmatrix} -&-\\ -&-\\ \end{bmatrix} \]
Σ是一個對角矩陣,a,b為奇藝值,奇藝值就是特征值的開平方,最右邊的矩陣為R矩陣
PCA計算量很大,運用SVD可以不用求協方差矩陣;