天天看點

PCA原理及其擴充介紹PCA概念介紹PCA步驟PCA原理拓展

文章目錄

  • PCA概念介紹
  • PCA步驟
  • PCA原理
    • 協方差矩陣
  • 拓展
    • 白化whitening
      • 目的
      • 步驟

PCA概念介紹

PCA,主成分分析,作用是進行将資料降維将m維的資料降到k維,好處是降低算法的複雜度(包括時間、空間複雜度)、使結果更容易了解、去除噪聲、使得資料集更容易使用。同樣能達到降維目的的方法還有SVD奇異值分解,因子分析(FA),獨立成分分析(ICA)。

PCA步驟

将所有的資料記為 X \bm{X} X, X = [ x 1 , x 2 , ⋯   , x n ] \bm{X}=[\bm{x_1},\bm{x_2},\cdots,\bm{x_n}] X=[x1​,x2​,⋯,xn​],即有n個資料,每個資料為m維。

  1. 将每一維資料去均值化,即每一位特征減去對應次元的平均值。
  2. 計算協方差矩陣。協方差矩陣公式 C o v = 1 n − 1 X X T Cov=\frac{1}{n-1}XX^T Cov=n−11​XXT。
  3. 計算協方差矩陣的特征值和标準化後的特征向量。
  4. 将所有特征值從大到小排列,記為 Y Y Y,顯然 Y Y Y是一個 m × k m\times k m×k的矩陣。
  5. 最終的結果為 Z = Y X Z=YX Z=YX

PCA原理

工作原理:希望找到一組新的正交坐标系,使得第一個選的坐标軸是原資料中方差最大的方向,第二個坐标軸是與第一個坐标軸正交的平面中方差最大的方向,依次類推。

協方差矩陣

協方差的作用是判斷兩個變量的相關性,若協方差為正,則正相關;為負,則負相關;為零,則互相獨立。

由協方差構成的矩陣為協方差矩陣,是一個實對稱矩陣,有很好的性質。

  1. 實對稱矩陣A的不同特征值對應的特征向量是正交的
  2. 實對稱矩陣A的特征值都是實數,特征向量都是實向量。
  3. n階實對稱矩陣A必可對角化,且相似對角陣上的元素即為矩陣本身特征值。
  4. 若λ0具有k重特征值 必有k個線性無關的特征向量,或者說必有秩r(λ0E-A)=n-k,其中E為機關矩陣。

對于兩個變量a,b, C o v ( a , b ) = E [ ( a − E ( a ) ) ( b − E ( b ) ) ] Cov(a,b)= E[(a-E(a))(b-E(b))] Cov(a,b)=E[(a−E(a))(b−E(b))],如果去均值化處理後,則 C o v ( a , b ) = E ( a b ) = ∑ i = 1 n a i ∗ b i Cov(a,b)=E(ab)=\sum_{i=1}^n a_i*b_i Cov(a,b)=E(ab)=∑i=1n​ai​∗bi​。

設原始資料 X X X對應的協方差矩陣為 C C C,則可以得到 C = 1 n X X T C=\frac{1}{n}XX^T C=n1​XXT。令 Y Y Y為變換後的資料, D D D為 Y Y Y對應的協方差矩陣。并設 P P P為變換矩陣,即 Y = P X Y=PX Y=PX。可得到以下式子:

D = 1 n Y Y T = 1 n ( P X ) ( P X ) T = 1 n P X X T P T = P C P T 。 (1) D=\frac{1}{n}YY^T=\frac{1}{n}(PX)(PX)^T=\frac{1}{n}PXX^TP^T=PCP^T。\tag{1} D=n1​YYT=n1​(PX)(PX)T=n1​PXXTPT=PCPT。(1)

顯然根據PCA原理來說,我們的目的是讓不同次元之間互相獨立,即協方差矩陣應為一個對角矩陣,同時滿足同一次元方差最大化,是以根據(1)式來說,得到的 D D D應為一個對角矩陣,并且對角線元素逐漸遞減。

接下來,由實對稱矩陣的性質可知,對 C C C特征分解,得到 C = Q Λ Q T C=Q\Lambda Q^T C=QΛQT,那麼可以得到實對稱矩陣的 Λ = Q T C Q \Lambda=Q^TCQ Λ=QTCQ,是以 Λ \Lambda Λ即為我們需要的 D D D,同時 Q Q Q對應的變換矩陣 P P P,因而對于特征向量隻需要按特征值從大到小排列取前k個并按行排布構成P即可。

拓展

白化whitening

目的

為了去除輸入資料的備援資訊,比如如果輸入資料是圖像,那麼相鄰像素點相關性很強,是以存在備援。是以經過白化的資料特征之間相關性較低,畢竟不同特征具有相同方差。

步驟

  1. PCA降維
  2. 對每一維坐标做标準差歸一化處理,即 a i j = a i j s t d ( a i ) a_{ij}=\frac{a_{ij}}{std(a_i)} aij​=std(ai​)aij​​,同時由于已知了降維後的标準差矩陣D,即對角線為選取的前k大的特征值,是以 a i j = a i j D i i + ϵ a_{ij}=\frac{a_{ij}}{\sqrt{D_{ii}+\epsilon}} aij​=Dii​+ϵ

    ​aij​​, ϵ \epsilon ϵ的作用是防止分母為零。

  3. 對于ZCA白化,還需要将新的次元的資料還原到原來的坐标系中。

繼續閱讀