主成分分析PCA原理推導解釋(一看就懂,簡單明了)


主成分分析(PCA)

有任何問題可以聯系jimmy_huang136@163.com或者在下方留言

1.概念

對信息進行降維處理,只保留一個維度的信息;PCA的目的就是找到一個坐標系,使得數據在只保留一個維度時,保留的信息最多(如下圖所示)
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可以不用求協方差矩陣;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM