1. 程式人生 > >主成分分析(PCA)詳細講解

主成分分析(PCA)詳細講解

介紹

主成分分析(Principal Component Analysis,PCA)是一種常用的資料降維演算法,可以將高維度的資料降到低維度,並且保留原始資料中最重要的一些特徵,同時去除噪聲和部分關聯特徵,從而提高資料的處理效率,降低時間成本。

資料降維優點

  • 低維資料更容易使用
  • 資料之間相互獨立
  • 減少了變數的個數
  • 提高了演算法的效率
  • 去除了噪聲
  • 結果的解釋性更強

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

協方差

統計學裡最基本的概念有均值、方差、標準差,假設有n個樣本: X 1 , X 2 , .

. . , X n X_{1},X_{2},...,X_{n} ,那麼

均值: X

= i = 1 N X i N \overline{X}=\frac{\sum_{i=1}^{N}X_{i}}{N}

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

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

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

C o v ( X , Y ) = i = 1 N ( X i X ) ( Y i Y ) N 1 Cov(X,Y)=\frac{\sum_{i=1}^{N}(X_{i}-\overline{X})(Y_{i}-\overline{Y})}{N-1}

  • C o v ( X , Y ) > 0 Cov(X,Y)>0 ,X和Y是正相關關係
  • C o v ( X , Y ) < 0 Cov(X,Y)<0 ,X和Y是負相關關係
  • C o v ( X , Y ) > 0 Cov(X,Y)>0 ,X和Y是線性不相關,但是不一定相互獨立哦( s i n x sinx c o s x cosx 線性不相關,但是它們的平方是有關係的, s i n 2 x + c o s 2 x = 1 sin^{2}x+cos^{2}x=1)

不過有的協方差用的是:

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

資料如果有三維,協方差矩陣為:

C = [ c o v ( x , x ) c o v ( x , y ) c o v ( x , z ) c o v ( y , x ) c o v ( y , y ) c o v ( y , z ) c o v ( z , x ) c o v ( z , y ) c o v ( 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維的,按列組成矩陣 X n m X_{nm} ,則PCA步驟如下:

  1. 均值化矩陣 X n m X_{nm} ,得到