主成分分析(PCA)推導過程及簡單實例

介紹

主成分分析(Principal Component Analysis,PCA)是一種常用的數據降維算法,可以將高維度的數據降到低維度,並且保留原始數據中最重要的一些特徵,同時去除噪聲和部分關聯特徵,從而提高數據的處理效率,降低時間成本。此外,在機器學習中,訓練樣本固定的情況下,特徵維數增加到某個臨界點後,再增加維數,反而會降低模型的預測能力(休斯現象,Hughes Phenomenon)。

降維的必要性:

  • 機器學習是建立在統計學習上的,而數據稀疏(維度過高的情況下)對於統計學而言是一個問題
  • 有大量模型需要依靠樣本之間的相似度才能被判定,而多數時候樣本的相似度由其在特徵空間的相互距離決定,這使得樣本密度影響了樣本的屬性
  • 維度過多導致計算量增大,影響機器學習效率

數據降維優點:

  • 增大了樣本的採樣密度
  • 低維數據更容易使用
  • 數據之間相互獨立
  • 減少了變量的個數
  • 提高了算法的效率
  • 去除了噪聲
  • 結果的解釋性更強

在PCA中,數據從原來的座標系轉換到新的座標系,在新的座標系中要求數據之間的協方差爲0(即不同維度之間的數據線性不相關),而方差儘可能的大。因此,第一座標軸是原始數據中方差最大的方向,第二個座標軸是與第一個新座標軸正交且方差次大的方向,重複該過程,直到需要的降維數。在詳細講解PCA之前,有必要先介紹協方差。

協方差

統計學裏最基本的概念有均值、方差、標準差,假設有n個樣本:X1,X2,...,XnX_{1},X_{2},...,X_{n},那麼

均值:X=i=1NXiN\overline{X}=\frac{\sum_{i=1}^{N}X_{i}}{N}

方差:S2=i=1N(XiX)2N1S^{2}=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})^2}{N-1}

標準差:S=i=1N(XiX)2N1S=\sqrt{\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})^2}{N-1}}

其中,方差和標準差是描述一維數據的離散程度,但現實中的數據往往是多維的,比如說學生的成績,不一定只和學習時間有關,還涉及到學習效率,學習狀態等等,這時便引入了協方差。協方差定義:

Cov(X,Y)=i=1N(XiX)(YiY)N1Cov(X,Y)=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})(Y_{i}-\overline{Y})}{N-1}

  • Cov(X,Y)>0Cov(X,Y)>0,X和Y是正相關關係
  • Cov(X,Y)<0Cov(X,Y)<0,X和Y是負相關關係
  • Cov(X,Y)>0Cov(X,Y)>0,X和Y是線性不相關,但是不一定相互獨立哦(sinxsinxcosxcosx線性不相關,但是它們的平方是有關係的,sin2x+cos2x=1sin^{2}x+cos^{2}x=1)

不過有的協方差用的是:

Cov(X,Y)=i=1N(XiX)(YiY)NCov(X,Y)=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})(Y_{i}-\overline{Y})}{N}(除以NN結果會偏小,得除以N1N-1才能得到無偏估計,可以參考“爲什麼樣本方差(sample variance)的分母是 n-1?”)

數據如果有三維,協方差矩陣爲:

C=[cov(x,x)cov(x,y)cov(x,z)cov(y,x)cov(y,y)cov(y,z)cov(z,x)cov(z,y)cov(z,z)]C=\begin{bmatrix} cov(x,x)& cov(x,y) & cov(x,z)\\ cov(y,x) &cov(y,y) & cov(y,z)\\ cov(z,x)& cov(z,y)&cov(z,z) \end{bmatrix}

PCA步驟

假設有m個樣本數據,每個數據是n維的,按列組成矩陣XnmX_{nm},則PCA步驟如下:

  1. 均值化矩陣XnmX_{nm},得到X=XnmXnmX=X_{nm}-\overline{X}_{nm}
  2. 求出協方差矩陣C=1n1XXTC=\frac{1}{n-1}XX^T
  3. 求出協方差矩陣CC的特徵值λi\lambda_{i}和特徵向量wiw_{i}
  4. 選取kk個最大的特徵值對應的特徵向量w1,w2,...,wkw_{1},w_{2},...,w_{k},組成矩陣WknW_{kn}(特徵值選擇方法:i=1kλii=1nλit\frac{\sum_{i=1}^{k}\lambda_{i}}{\sum_{i=1}^{n}\lambda_{i}}\ge ttt越大保留的特徵值越多,按實際要求)
  5. 降維矩陣Ykm=WknXnmY_{km} = W_{kn}X_{nm}

PCA實例

假設:
X25=[2235311122]X_{2*5}=\begin{bmatrix} 2& 2 & 3& 5& 3\\ -1&1 & 1& 2& 2 \end{bmatrix}

  1. 均值化:X=X25X25=[1102020011]X=X_{2*5}-\overline{X}_{2*5}=\begin{bmatrix} -1& -1 & 0& 2& 0\\ -2&0& 0& 1& 1 \end{bmatrix}
  2. 協方差矩陣:C=151XXT=[321132]C=\frac{1}{5-1}XX^T=\begin{bmatrix} \frac{3}{2}& 1 \\ 1& \frac{3}{2} \end{bmatrix}
  3. 特徵值爲:λ1=52,λ2=12\lambda_{1}=\frac{5}{2},\lambda_{2}=\frac{1}{2},對應的特徵向量w1=[11],w2=[11]w_{1}=\begin{bmatrix} 1 \\ 1\end{bmatrix},w_{2}=\begin{bmatrix} 1 \\ -1\end{bmatrix},特徵向量單位化w1=[1212],w2=[1212]w_{1}'=\begin{bmatrix} \frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}} \end{bmatrix},w_{2}'=\begin{bmatrix} \frac{1}{\sqrt{2}} \\ -\frac{1}{\sqrt{2}} \end{bmatrix}
  4. 按照特徵值大小排序,選擇最大的部分特徵,這裏選取λ1\lambda_{1},此時矩陣W12=[1212]W_{1*2}=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \end{bmatrix}
  5. 降維矩陣Y15=W12X25=[1212][1102020011]=[321203212]Y_{1*5}= W_{1*2}X_{2*5}=\begin{bmatrix} \frac{1}{\sqrt{2}} &\frac{1}{\sqrt{2}} \end{bmatrix}\begin{bmatrix} -1& -1 & 0& 2& 0\\ -2&0& 0& 1& 1 \end{bmatrix}=\begin{bmatrix} -\frac{3}{\sqrt{2}} &-\frac{1}{\sqrt{2}} &0&\frac{3}{\sqrt{2}} &\frac{1}{\sqrt{2}}\end{bmatrix}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章