主成分分析 ( Principal Component Analysis , PCA )或者主元分析。是一種掌握事物主要矛盾的統計分析方法,它可以從多元事物中解析出主要影響因素,揭示事物的本質,簡化復雜的問題。計算主成分的目的是將高維數據投影到較低維空間。給定 n 個變量的 m 個觀察值,形成一個 n ′ m 的數據矩陣, n 通常比較大。對于一個由多個變量描述的復雜事物,人們難以認識,那么是否可以抓住事物主要方面進行重點分析呢?如果事物的主要方面剛好體現在幾個主要變量上,我們只需要將這幾個變量分離出來,進行詳細分析。但是,在一般情況下,并不能直接找出這樣的關鍵變量。這時我們可以用原有變量的線性組合來表示事物的主要方面, PCA 就是這樣一種分析方法。
PCA 主要 用于數據降維,對于一系列例子的特征組成的多維向量,多維向量里的某些元素本身沒有區分性,比如某個元素在所有的例子中都為1,或者與1差距不大,那么這個元素本身就沒有區分性,用它做特征來區分,貢獻會非常小。所以我們的目的是找那些變化大的元素,即方差大的那些維,而去除掉那些變化不大的維,從而使特征留下的都是“精品”,而且計算量也變小了。 對于一個k維的特征來說,相當于它的每一維特征與其他維都是正交的(相當于在多維坐標系中,坐標軸都是垂直的),那么我們可以變化這些維的坐標系,從而使這個特征在某些維上方差大,而在某些維上方差很小。例如,一個45度傾斜的橢圓,在第一坐標系,如果按照x,y坐標來投影,這些點的x和y的屬性很難用于區分他們,因為他們在x,y軸上坐標變化的方差都差不多,我們無法根據這個點的某個x屬性來判斷這個點是哪個,而如果將坐標軸旋轉,以橢圓長軸為x軸,則橢圓在長軸上的分布比較長,方差大,而在短軸上的分布短,方差小,所以可以考慮只保留這些點的長軸屬性,來區分橢圓上的點,這樣,區分性比x,y軸的方法要好!
所以我們的做法就是求得一個k維特征的投影矩陣,這個投影矩陣可以將特征從高維降到低維。投影矩陣也可以叫做變換矩陣。新的低維特征必須每個維都正交,特征向量都是正交的。通過求樣本矩陣的協方差矩陣,然后求出協方差矩陣的特征向量,這些特征向量就可以構成這個投影矩陣了。特征向量的選擇取決于協方差矩陣的特征值的大小。
舉例:
對于一個訓練集,100個對象模板,特征是10維,那么它可以建立一個100*10的矩陣,作為樣本。求這個樣本的協方差矩陣,得到一個10*10的協方差矩陣,然后求出這個協方差矩陣的特征值和特征向量,應該有10個特征值和特征向量,我們根據特征值的大小,取前四個特征值所對應的特征向量,構成一個10*4的矩陣,這個矩陣就是我們要求的特征矩陣,100*10的樣本矩陣乘以這個10*4的特征矩陣,就得到了一個100*4的新的降維之后的樣本矩陣,每個特征的維數下降了。
當給定一個測試的特征集之后,比如1*10維的特征,乘以上面得到的10*4的特征矩陣,便可以得到一個1*4的特征,用這個特征去分類。
所以做PCA實際上是求得這個投影矩陣,用高維的特征乘以這個投影矩陣,便可以將高維特征的維數下降到指定的維數。
PCA 的目標是尋找 r ( r<n )個新變量,使它們反映事物的主要特征,壓縮原有數據矩陣的規模。每個新變量是原有變量的線性組合,體現原有變量的綜合效果,具有一定的實際含義。這 r 個新變量稱為“主成分”,它們可以在很大程度上反映原來 n 個變量的影響,并且這些新變量是互不相關的,也是正交的。通過主成分分析,壓縮數據空間,將多元數據的特征在低維空間里直觀地表示出來。例如,將多個時間點、多個實驗條件下的基因表達譜數據( N 維)表示為 3維空間中的一個點,即將數據的維數從 RN 降到 R3 。
在進行基因表達數據分析時,一個重要問題是確定每個實驗數據是否是獨立的,如果每次實驗數據之間不是獨立的,則會影響基因表達數據分析結果的準確性。對于利用基因芯片所檢測到的基因表達數據,如果用 PCA 方法進行分析,可以將各個基因作為變量,也可以將實驗條件作為變量。當將基因作為變量時,通過分析確定一組“主要基因元素”,它們能夠很好地說明基因的特征,解釋實驗現象;當將實驗條件作為變量時,通過分析確定一組“主要實驗因素”,它們能夠很好地刻畫實驗條件的特征,解釋基因的行為。下面著重考慮以實驗條件作為變量的 PCA 分析方法。假設將數據的維數從 R N 降到 R 3 ,具體的 PCA 分析步驟如下:
(2) 第二步計算協方差矩陣S的本征向量e1,e2,…,eN的本征值, i = 1,2,…,N 。本征值按大到小排序:;
(3)第三步投影數據到本征矢張成的空間之中,這些本征矢相應的本征值為。數據可以在三維空間中展示為云狀的點集。
對于 PCA ,確定新變量的個數 r 是一個兩難的問題。我們的目標是減小 r ,如果 r 小,則數據的維數低,便于分析,同時也降低了噪聲,但可能丟失一些有用的信息。究竟如何確定 r 呢?這需要進一步分析每個主元素對信息的貢獻。
貢獻率表示所定義的主成分在整個數據分析中承擔的主要意義占多大的比重,當取前 r 個主成分來代替原來全部變量時,累計貢獻率的大小反應了這種取代的可靠性,累計貢獻率越大,可靠性越大;反之,則可靠性越小。一般要求累計貢獻率達到 70% 以上。
經過 PCA 分析,一個多變量的復雜問題被簡化為低維空間的簡單問題。可以利用這種簡化方法進行作圖,形象地表示和分析復雜問題。在分析基因表達數據時,可以針對基因作圖,也可以針對實驗條件作圖。前者稱為 Q 分析,后者稱為 R 分析。