1. 程式人生 > >主成分分析(pca)演算法原理

主成分分析(pca)演算法原理

影象處理中對很多副圖片提取特徵時,由於特徵的維數過高而影響程式的效率,所以用到pca進行特徵降維。

那怎樣才能降低維數呢?它又用到了什麼數學方法呢?

1.協方差矩陣

        假設有一個樣本集X,裡面有N個樣本,每個樣本的維度為d。即:


將這些樣本組織成樣本矩陣形式,即每行為一個樣本,每列為一個維度,得到樣本矩陣T;根據協方差矩陣公式



其中為均值,n為樣本數。可以先將樣本矩陣中心化,即將每個維度減去對應的均值,得到中心化矩陣S,因此

協方差矩陣可以簡單的表示為:

2.將協方差矩陣對角化

       因為協方差矩陣是對稱矩陣,對稱矩陣對角化就可以得到一個正交矩陣P,且滿足:

其中

Λ為協方差矩陣的特徵值所組成的對角陣,而P為每一個特徵值所對應的的特徵向量組成的矩陣。

3.取前p(p<d)個較大的特徵值組成一個新的對角矩陣Λ1,其對應的p個新的特徵向量組成的新的矩陣為P1

        這樣使得比P小了d-p個維度,從而達到降維的目的,只要求出降維後的樣本矩陣,pca降維的目的就可以達成了。

  新的樣本矩陣各個維度間的協方差基本為零,也就是說的協方差矩陣應該為Λ1。即滿足:


而又有公式:

帶入可得:

                      



由於樣本矩陣的每一行是一個樣本,特徵向量矩陣是每一列的一個特徵向量。右乘相當於每個樣本

的特徵向量為基進行線性變換,得到新的樣本矩陣

中每個樣本的維數變為了p,完成了降維的操作。

實際上P1中的特徵向量就是低維空間的新的座標,稱之為“主成分”。這就是“主成分分析”的名稱由來。同時的協方差矩陣

為近對角陣,說明不同維度間已經基本獨立。至此,整個pca的過程已經結束。

在這裡,要注意的是,在上面第3點中選擇特徵值(也就是選擇主成分)是按照貢獻率來的,而不是隨便選取p個主成分。

其實也就是選取特徵值大的,丟棄特徵值較小的,因為特徵值越大,對應的特徵向量(也即主成分)包含的資訊量越大。

貢獻率是指選取的p個特徵值之和佔全部特徵值之和的比重,一般為85%以上。公式如下:



總的來說,pca就是選取協方差矩陣的特徵值較大的,忽略特徵值較小的,因為特徵值較小的對應的特徵向量包含的資訊量較小,

可以忽略,也就是說,丟棄次要的成分,保留主要的成分,從而達到降低維數。