【機器學習】--主成分分析PCA降維從初識到應用

LHBlog發表於2018-04-10

一、前述

主成分分析(Principal Component Analysis,PCA), 是一種統計方法。通過正交變換將一組可能存在相關性的變數轉換為一組線性不相關的變數,轉換後的這組變數叫主成分

PCA的思想是將n維特徵對映到k維上(k<n),這k維是全新的正交特徵。這k維特徵稱為主成分,是重新構造出來的k維特徵,而不是簡單地從n維特徵中去除其餘n-k維特徵。

 二、概念

協方差是衡量兩個變數同時變化的變化程度。PCA的思想是將n維特徵對映到k維上(k<n),這k維是全新的正交特徵。這k維特徵稱為主成分,是重新構造出來的k維特徵,而不是簡單地從n維特徵中去除其餘n-k維特徵。

協方差是衡量兩個變數同時變化的變化程度。協方差大於0表示x和y若一個增,另一個也增;小於0表示一個增,一個減。如果x和y是統計獨立的,那麼二者之間的協方差就是0;但是協方差是0,並不能說明x和y是獨立的。協方差絕對值越大,兩者對彼此的影響越大,反之越小。協方差是沒有單位的量,因此,如果同樣的兩個變數所採用的量綱發生變化,它們的協方差也會產生樹枝上的變化。

協方差矩陣:

三、過程和舉例

1.特徵中心化。即每一維的資料都減去該維的均值。這裡的“維”指的就是一個特徵(或屬性),變換之後每一維的均值都變成了0。

現在假設有一組資料如下:

 

 

2.每一列減去該列均值後,得到矩陣B,

 

 

3.求特徵協方差矩陣,如果資料是3維,那麼協方差矩陣是

  這裡只有x和y,求解得

 

 

4.計算協方差矩陣C的特徵值和特徵向量,得到

 上面是兩個特徵值,下面是對應的特徵向量,特徵值0.0490833989對應特徵向量為,這裡的特徵向量都歸一化為單位向量。

 

5.將特徵值按照從大到小的順序排序,選擇其中最大的k個,然後將其對應的k個特徵向量分別作為列向量組成特徵向量矩陣。

這裡特徵值只有兩個,我們選擇其中最大的那個,這裡是1.28402771,對應的特徵向量是(-0.677873399, -0.735178656)T。

 

6.將樣本點投影到選取的特徵向量上。假設樣例數為m,特徵數為n,減去均值後的樣本矩陣為DataAdjust(m*n),協方差矩陣是n*n,選取的k個特徵向量組成的矩陣為EigenVectors(n*k)。那麼投影后的資料FinalData為

FinalData(10*1) = DataAdjust(10*2矩陣) x 特徵向量(-0.677873399, -0.735178656)T

得到的結果是

 這樣,就將原始樣例的n維特徵變成了k維,這k維就是原始特徵在k維上的投影。

上面的資料可以認為是learn和study特徵融合為一個新的特徵叫做LS特徵,該特徵基本上代表了這兩個特徵。原本資料是10行2列*2行1列(取最大的特徵值對應的特徵向量)=10行1列的資料。

可以參考:http://www.cnblogs.com/zhangchaoyang/articles/2222048.html

 四、總結

降維的目的:

1.減少預測變數的個數

2.確保這些變數是相互獨立的

3.提供一個框架來解釋結果

降維的方法有:主成分分析、因子分析、使用者自定義複合等。

PCA(Principal Component Analysis)不僅僅是對高維資料進行降維,更重要的是經過降維去除了噪聲,發現了資料中的模式。

PCA把原先的n個特徵用數目更少的m個特徵取代,新特徵是舊特徵的線性組合,這些線性組合最大化樣本方差,儘量使新的m個特徵互不相關。從舊特徵到新特徵的對映捕獲資料中的固有變異性。

相關文章