回覆列表
  • 1 # 北航秦曾昌

    PCA是機器學習領域中常用的一種降維手段。在實際專案中,我們處理的樣本特徵一般都是多維甚至高維,而且特徵與特徵之間又常常存在冗餘。例如:在處理一些分類任務的時候,實驗前,我們無法確定哪些物理特徵對分類效果起到重要作用,所以我們常常儘可能多地收集樣本的各種特徵資料,拿到資料之後在透過資料分析方法選擇出合理的特徵用於模型的訓練。而PCA就是資料分析降維方法中的一個典型代表,幫助我們在眾多特徵中提取出最有價值的部分,而提取後的特徵表面上雖然失去了原本特徵的物理含義,卻能更好的表現樣本的特性,達到良好的分類效果。

    在介紹PCA之前,我們先要明白以下幾點向量背景知識:

    1)向量內積的物理含義

    兩個向量作內積A·B,其實就是一個向量A向另一個向量B的方向作投影。如果B是單位向量,則內積的結果A·B就是A在B方向投影的長度。如果B不是單位向量,則內積的結果A·B就是A在B方向投影的長度再乘以一個B的模長,相當於把投影作了一個長度上的伸或縮。

    2)向量的表示

    A是一個向量,我們需要表示它,在圖中基(1,0)和(0,1)表示的二維空間中,A就可以表示成(3,2),也就是說,A(3,2)是在二維空間中基是(1,0)和(0,1)的前提下。

    3)基變換

    這個座標轉換的過程,實際上就是向量A向新基作投影的過程,即新基的每一個軸向量與A作內積,內積的結果就是向量A在此軸上的座標。

    4)引出降維問題

    上述過程的一般情況如下圖所示:

    (a1 a2 a3 … aM),其中ai是一個n維的向量,(p1 p2 p3 … pR).T 是n維空間的R個新基向量。兩個矩陣相乘的意義,就是將(a1 a2 a3 … aM)的每一個列向量變換到以(p1 p2 p3 … pR).T的每一行向量為基的新空間去。

    這個過程對應到機器學習中就是將M個樣本資料(每個資料有n個特徵)從n維空間中的舊基上變換到以(p1 p2 p3 … pR).T為新基的空間中。如果R=N,這只是達到了對每一個樣本從一個基到另一個基的座標轉換的過程;如果R<N,也就是將M個樣本,投影到n維空間中的一個子空間,這個子空間就是以(p1 p2 p3 … pR).T為基的,也就是一個降維的過程,我們會發現當R<N的時候,必然會丟掉某些維度資訊,那PCA想要達到的目的就是如何選取這個新基p1 p2 p3 … pR).T,使其既能達到很好的降維效果,又能儘可能多的體現樣本蘊含的資訊。

    5)PCA

    PCA的目的就是想找到一個投影方向(或者說新基),使得樣本資料投影在這個子空間上能體現更多的資訊。其中一種推導方式就是基於最大投影方差。直觀的理解就是樣本在新的投影方向的投影值的方差越大越好,尋找一個一維基,使得所有的樣本變換到這個基上的座標值方差最大。

    但是如果單純地只考慮方差最大,那麼我們在選在後面投影方向的時候,應該會和上一個投影方向非常接近,為了能讓樣本多個投影方向中儘可能多的表示樣本資訊,我們是希望不同的投影方向應該是線形無關的(互相垂直的),即兩個投影方向向量的協方差為0,選擇下一個投影方向(基向量)時,只能在與之前投影方向正交的方向上選擇。

    協方差矩陣如下圖所示:

    它可以理解為M個樣本資料,每個樣本具有2個維度的特徵(假設樣本特徵已經去均值化了),對角線上元素表示M個樣本的各個特徵的方差,其他位置上元素表示M個樣本的特徵與特徵的之間協方差。這個協方差矩陣C是一個n*n的實對稱矩陣,根據矩陣論的知識,我們知道對於實對稱矩陣C我們一定可以找到n個單位正交特徵向量,使其轉換為對角化矩陣。這n個單位正交特徵向量就是一個新的基,將C投影到這個新基中,就能使轉換的結果保證方差最大,協方差為0,而特徵值就可以理解為特徵投影到各個新基中的座標,顯然特徵值大的對應的基向量比較重要,因為這個方向能使樣本們某一維度的特徵投影到這個方向的投影值方差最大,在實際降維的時候,我們也是按照特徵值從大到小的順序,選取對應的特徵向量作為新的基,將原石資料對映到這個新基中最終完成降維的效果。

    下圖是實際用PCA進行降維的例子,大家可以看一下,輔助理解PCA的降維過程。

  • 2 # L先生AI課堂

    主成分分析(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個特徵互不相關。從舊特徵到新特徵的對映捕獲資料中的固有變異性。

  • 中秋節和大豐收的關聯?
  • 梁山好漢可能存在的三種結局,是否征討過方臘成最大疑點?