機器學習之PCA演算法學習

2021-10-25 18:31:32 字數 3457 閱讀 6315

**pca全稱principal component analysis,即主成分分析,**是一種常用的資料降維方法。它可以通過線性變換將原始資料變換為一組各維度線性無關的表示,以此來提取資料的主要線性分量。

其中,z為低維矩陣,x為高維矩陣,w為兩者之間的對映關係。假如我們有二維資料(原始資料有兩個特徵軸——特徵1和特徵2)如下圖所示,樣本點分布為斜45°的藍色橢圓區域。pca演算法認為斜45°為主要線性分量,與之正交的虛線是次要線性分量(應當捨去以達到降維的目的)。

劃重點:

1、線性變換=>新特徵軸可由原始特徵軸線性變換表徵

2、線性無關=>構建的特徵軸是正交的

3、主要線性分量(或者說是主成分)=>方差加大的方向

4、pca演算法的求解就是找到主要線性分量及其表徵方式的過程

相應的,pca解釋方差並對離群點很敏感:少量原遠離中心的點對方差有很大的影響,從而也對特徵向量有很大的影響。

乙個矩陣與乙個列向量a相乘,等到乙個新的列向量b,則稱該矩陣為列向量a到列向量b的線性變換。

我們希望投影後投影值盡可能分散,而這種分散程度,可以用數學上的方差來表述。

即尋找乙個一維基,使得所有資料變換為這個基上的座標表示後,方差值最大。

解釋:方差越大,說明資料越分散。通常認為,資料的某個特徵維度上資料越分散,該特徵越重要。
對於更高維度,還有乙個問題需要解決,考慮三維降到二維問題。與之前相同,首先我們希望找到乙個方向使得投影後方差最大,這樣就完成了第乙個方向的選擇,繼而我們選擇第二個投影方向。如果我們還是單純只選擇方差最大的方向,很明顯,這個方向與第乙個方向應該是「幾乎重合在一起」,顯然這樣的維度是沒有用的,因此,應該有其他約束條件——就是正交欄位在本文中指,降維後的樣本的特徵軸

數學上可以用兩個欄位的協方差表示其相關性:

當協方差為0時,表示兩個字段線性不相關。

總結一下,pca的優化目標是:

將一組n維向量降為k維(k大於0,小於n),其目標是選擇k個單位正交基,使得原始資料變換到這組基上後,各字段兩兩間協方差為0,而字段的方差則盡可能大。

所以現在的重點是方差和協方差

在統計學上,協方差用來刻畫兩個隨機變數之間的相關性,反映的是變數之間的二階統計特性。考慮兩個隨機變數 xi和xj,它們的協方差定義為:

協方差矩陣:

假設有m個變數,特徵維度為2, a 1 表示變數1的a特徵。那麼構成的資料集矩陣為:

再假設它們的均值都是0,對於有兩個均值為0的m維向量組成的向量組,

可以發現對角線上的元素是兩個欄位的方差,其他元素是兩個欄位的協方差,兩者都被統一到了乙個矩陣——協方差矩陣中。

回顧一下前面所說的pca演算法的目標:方差max,協方差min!!

要達到pca降維目的,等價於將協方差矩陣對角化:即除對角線外的其他元素化為0,並且在對角線上將元素按大小從上到下排列,這樣我們就達到了優化目的。

設原始資料矩陣x對應的協方差矩陣為c,而p是一組基按行組成的矩陣,設y=px,則y為x對p做基變換後的資料。設y的協方差矩陣為d,我們推導一下d與c的關係:

解釋:想讓原始資料集x =>pca成資料集y,使得y的協方差矩陣是個對角矩陣。

有上述推導可得,若有矩陣p能使x的協方差矩陣對角化,則p就是我們要找的pca變換。

優化目標變成了尋找乙個矩陣 p,滿足 pcp^t 是乙個對角矩陣,並且對角元素按從大到小依次排列,那麼 p的前 k 行就是要尋找的基,用 p 的前 k 行組成的矩陣乘以 x 就使得 x從 n維降到了 k 維並滿足上述優化條件。

首先,原始資料矩陣x的協方差矩陣c是乙個實對稱矩陣,它有特殊的數學性質:

1、實對稱矩陣不同特徵值對應的特徵向量必然正交。

2、設特徵值 λ重數為r,則必然存在r個線性無關的特徵向量對應於 λ ,因此可以將這r個特徵向量單位正交化。

乙個n行n列的實對稱矩陣一定可以找到n個單位正交特徵向量,設這n個特徵向量為 e 1 , e 2 , . . . , e n ,我們將其按列組成矩陣:

則對於協方差矩陣c有如下結論

這裡又不懂的朋友可以查閱線性代數相關書籍

p是協方差矩陣的特徵向量單位化後按行排列出的矩陣,其中每一行都是c的乙個特徵向量。如果設p按照中特徵值的從大到小,將特徵向量從上到下排列,則用p的前k行組成的矩陣乘以原始資料矩陣x,就得到了我們需要的降維後的資料矩陣y。

在解釋一下,特徵值  λ為什麼要從大到小排列,為什麼要選較大的λ???

因為我們協方差矩陣的對角線元素是方差,我們想要找方差交大的特徵維度,所以要選擇較大的對角線元素。

而對角矩陣 λ 雖然是c經過線性變化後的矩陣,但它在對角線上元素的大小關係沒變,特徵維度 i 對應的特徵值 λ i 越大,該維度上資料的方差越大。

根據上面對pca的數學原理的解釋,我們可以了解到一些pca的能力和限制。pca本質上是將方差最大的方向作為主要特徵,並且在各個正交方向上將資料「離相關」,也就是讓它們在不同正交方向上沒有相關性。

因此,pca也存在一些限制,例如它可以很好的解除線性相關,但是對於高階相關性就沒有辦法了,對於存在高階相關性的資料,可以考慮kernel pca,通過kernel函式將非線性相關轉為線性相關,關於這點就不展開討論了。另外,pca假設資料各主特徵是分布在正交方向上,如果在非正交方向上存在幾個方差較大的方向,pca的效果就大打折扣了。

最後需要說明的是,pca是一種無引數技術,也就是說面對同樣的資料,如果不考慮清洗,誰來做結果都一樣,沒有主觀引數的介入,所以pca便於通用實現,但是本身無法個性化的優化。

PCA演算法學習記錄

重要宣告 以下內容主要參考吳恩達機器學習課程和張洋的pca數學原理文章 降維 dimensionality reduction 降維的目的 1 資料壓縮 2 視覺化資料。pca principal component analysis 是一種常用的資料分析方法。pca通過線性變換將原始資料變換為一組...

機器學習之整合學習演算法學習筆記

boosting方法是一種將弱學習器提公升為強學習器的演算法。最著名的代表是 adaboost 演算法。它學習過程中,對分類正確的樣本降低了權重,對分類錯誤的樣本公升高權重或保持不變。在演算法中,需要對訓練樣本分佈進行重新調整。有兩種調整方式 重新賦權法 即在訓練的每一輪中,根據樣本分佈為每乙個訓練...

機器學習之KNN演算法學習筆記

1.1 cover和hart在1968年提出了最初的鄰近演算法 1.2 分類 classification 演算法 回歸演算法,這裡討論的是分類演算法 1.3 輸入基於例項的學習 instance based learning 懶惰學習 lazy learning 為了判斷未知例項的類別,以所有已知...