一目瞭然之 PCA SVD 協方差 相關係數及區分

一、數據降維技術

    主要有三種:PCA(主成分分析法)、FA(因子分析法)、ICA(獨立成分分析法),應用最廣範、最廣爲人知的就是PCA方法,這裏主要分析PCA方法。

二、PCA

    首先要知道的是PCA降維的原理和目的是什麼?
    原理:最大化投影后數據的方差,表示爲在某一維度的投影方差最大,如下圖中當前位置不是投影方差最大的位置,因爲好多點重合到了一起,因此在該維度我們就很難區分重疊的數據,當途中的直線旋轉到斷線的位置時,此時可以看到大部分的點是很分散的,對應着方差很大。此時就將二維的數據(x-y平面),投影到了一維上(一條直線上)。

    PCA的實現用到了協方差矩陣,那麼你可能會問什麼是協方差矩陣,爲什麼要用協方差矩陣?
    首先回答第一個問題,什麼是協方差矩陣。首先大家肯定知道什麼是方差,方差就是描述一維數據的分佈離散程度,有了這個概念我們就可以相應的拓展到多維數據了,協方差顧名思義就是不是真正的方差,其主要是爲了表示兩個變量之間的相關關係(相關係數也是表示兩個變量之間的相關關係,那麼兩者之間的區別在哪裏呢,後續後提到),而協方差矩陣是應用到更多維數據上的,那麼在多維數據裏面又表示什麼意思呢?

假設樣本數據有r維(組成一個r維向量),共有n個樣本。組成r*n矩陣A,矩陣每一列是一個樣本,行是各個不同的特徵維度。求解協方差矩陣S=AAT(最好先將A進行每個維度上的數據進行中心化A→C再求協方差矩陣S=CCT

),S是r*r的方陣,用X(j)表示樣本數據的第j維數據,則求解協方差爲:(圖來自babywong的博客)

                         
    我們可以看到S矩陣的對角線上就是對應的特徵的方差,其餘非對角線上就是我們前面提到協方差的定義,也就是兩個特徵之間的相關關係。再回顧一下我們用PCA的目的,爲了減少維度,但是不損失信息。那現在對應上圖中的矩陣,我們希望做的就是取前N個方差(對應着能量)比較大的特徵(對應着K個維度裏面取N維),能夠表示大部分的數據信息;我們還想使得各個特徵之間的協方差(相關關係)最小,以便於我們區分開來。

   所以經過上述的解釋就比較明白了協方差矩陣到底隱藏了什麼祕密,要我們取分解它。想要實現上述的目的需要將協方差矩陣進行特徵值分解(eig),得到特徵值和特徵向量,然後將特徵值進行從大到小的排序,保留最上面的N個特徵向量,最後再與C矩陣相乘就得到我們降維以後的矩陣了。

     PS:(查看矩陣降維後所保留的信息比例-可以通過計算前N個特徵值的和除以所有特徵值的和來實現)

三、SVD及異同分析

   大家肯定都知道大名鼎鼎的SVD(奇異值分解),矩陣經過SVD分解後生成三個矩陣,這塊就不細說了,下面主要來分析兩者之間的異同點(嚴格的說是SVD和特徵值分解之間的異同):同:1、SVD中的對焦矩陣中的值(奇異值)就是協方差矩陣特徵分解的特徵值的平方根(因此SVD運算速度更快),2、可以找到一個標準正交矩陣,將特徵值分解寫成SVD的形式,類似P-1P(AAT)PTP= P-1ΛP 即S=AAT= P-1ΛP, :異:1、SVD不用計算協方差這一步,直接對矩陣C進行奇異值分解,而PCA需要通過計算協方差矩陣,然後在進行特徵值分解。2、特徵值分解只能對方陣進行分解,而SVD都可以。

四、協方差和相關關係

      注意,這裏的兩者都指的是兩個變量之間(也可認爲兩維(受矩陣影響太深)),比如兩個變量X,Y,如果兩者之間的協方差爲正,則說明兩者之間爲正相關,爲負,則說明負相關。 

                                                              

相關係數的原理概念和協方差一摸一樣,只不過不同的是相關係數的計算公式爲:很明顯在原有的協方差上面除以了兩者標準差的乘積,只是爲了進行標準化,消除X Y之間的量綱的影響。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章