PCA推導與直觀理解

2021-09-29 08:21:04 字數 3565 閱讀 5236

資料降維

為了說明什麼是資料的主成分,先從資料降維說起。資料降維是怎麼回事兒?假設三維空間中有一系列點,這些點分布在乙個過原點的斜面上,如果你用自然座標系x,y,z這三個軸來表示這組資料的話,需要使用三個維度,而事實上,這些點的分布僅僅是在乙個二維的平面上,那麼,問題出在**?如果你再仔細想想,能不能把x,y,z座標系旋轉一下,使資料所在平面與x,y平面重合?這就對了!如果把旋轉後的座標系記為x',y',z',那麼這組資料的表示只用x'和y'兩個維度表示即可!當然了,如果想恢復原來的表示方式,那就得把這兩個座標之間的變換矩陣存下來。這樣就能把資料維度降下來了!但是,我們要看到這個過程的本質,如果把這些資料按行或者按列排成乙個矩陣,那麼這個矩陣的秩就是2!這些資料之間是有相關性的,這些資料構成的過原點的向量的最大線性無關組包含2個向量,這就是為什麼一開始就假設平面過原點的原因!那麼如果平面不過原點呢?這就是資料中心化的緣故!將座標原點平移到資料中心,這樣原本不相關的資料在這個新座標系中就有相關性了!有趣的是,三點一定共面,也就是說三維空間中任意三點中心化後都是線性相關的,一般來講n維空間中的n個點一定能在乙個n-1維子空間中分析!所以,不要說資料不相關,那是因為座標沒選對!

上面這個例子裡把資料降維後並沒有丟棄任何東西,因為這些資料在平面以外的第三個維度的分量都為0。現在,我假設這些資料在z'軸有乙個很小的抖動,那麼我們仍然用上述的二維表示這些資料,理由是我認為這兩個軸的資訊是資料的主成分,而這些資訊對於我們的分析已經足夠了,z'軸上的抖動很有可能是雜訊,也就是說本來這組資料是有相關性的,雜訊的引入,導致了資料不完全相關,但是,這些資料在z'軸上的分布與原點構成的夾角非常小,也就是說在z'軸上有很大的相關性,綜合這些考慮,就可以認為資料在x',y'軸上的投影構成了資料的主成分!

現在,關於什麼是資料的主成分已經很好的回答了。下面來看乙個更具體的例子。

下面是一些學生的成績:

首先,假設這些科目成績不相關,也就是說某一科考多少份與其他科沒有關係。那麼一眼就能看出來,數學、物理、化學這三門成績構成了這組資料的主成分(很顯然,數學作為第一主成分,因為數學成績拉的最開)。為什麼一眼能看出來?因為座標軸選對了!下面再看一組資料,還能不能一眼看出來:

是不是有點凌亂了?你還能看出來資料的主成分嗎?顯然不能,因為在這座標系下資料分布很散亂。所以說,看到事物的表象而看不到其本質,是因為看的角度有問題!如果把這些資料在空間中畫出來,也許你一眼就能看出來。但是,對於高維資料,能想象其分布嗎?就算能描述分布,如何精確地找到這些主成分的軸?如何衡量你提取的主成分到底佔了整個資料的多少資訊?要回答這些問題,需要將上面的分析上公升到理論層面。接下來就是pca的理論分析。

pca推導

以下面這幅圖開始我們的推導:

上面是二維空間中的一組資料,很明顯,資料的分布讓我們很容易就能看出來主成分的軸(簡稱主軸)的大致方向。下面的問題就是如何通過數學計算找出主軸的方向。來看這張圖:

現在要做的事情就是尋找u1的方向,對於這點,我想好多人都有經驗,這不就是以前用最小二乘法擬合資料時做的事情嗎!對,最小二乘法求出來的直線(二維)的方向就是u1的方向!那u2的方向呢?因為這裡是二維情況,所以u2方向就是跟u1垂直的方向,對於高維資料,怎麼知道u2的方向?經過下面的理論推導,各個主軸都能確定下來。

給定一組資料:(如無說明,以下推導**現的向量都是預設是列向量)

將其中心化後表示為:

中心化後的資料在第一主軸u1方向上分布散的最開,也就是說在u1方向上的投影的絕對值之和最大(也可以說方差最大),計算投影的方法就是將x與u1做內積,由於只需要求u1的方向,所以設u1是單位向量。

也就是最大化下式:

也即最大化:

解釋:平方可以把絕對值符號拿掉,光滑曲線處理起來方便。

兩個向量做內積可以轉化成矩陣乘法:

所以目標函式可以表示為:

括號裡面就是矩陣乘法表示內積,轉置以後的行向量乘以列向量得到乙個數。因為乙個數的轉置還是其本身,所以又可以將目標函式化為:

這樣就可以把括號去掉!去掉以後變成:

由於u1和i無關,可以把它拿到求和符外面:

注意,其實括號裡面是乙個矩陣乘以自身的轉置,這個矩陣形式如下:

x矩陣的第i列就是xi,於是有:

所以目標函式最後化為:

上式到底有沒有最大值呢?如果沒有前面的1/n,那就是就是乙個標準的二次型!並且xx'(為了方便,用'表示轉置)得到的矩陣是乙個半正定的對稱陣!為什麼?首先xx'是對稱陣,因為(xx')'=xx',下面證明它是半正定,什麼是半正定?就是所有特徵值大於等於0。

假設xx'的某乙個特徵值為,對應的特徵向量為,則有:

證明完畢!對於半正定陣的二次型,存在最大值!現在問題就是如何求目標函式的最大值?以及取最大值時u1的方向?下面介紹兩種方法。

方法一  拉格朗日乘數法

目標函式和約束條件構成了乙個最大化問題:

構造拉格朗日函式:

對u1求導

顯然,u1即為xx'特徵值對應的特徵向量!xx'的所有特徵值和特徵向量都滿足上式,那麼將上式代入目標函式表示式即可得到

所以,如果取最大的那個特徵值,那麼得到的目標值就最大。有可能你會有疑問,為什麼一階導數為0就是極大值呢?那麼再求二階導數:

二階導數半負定,所以,目標函式在最大特徵值所對應的特徵向量上取得最大值!所以,第一主軸方向即為第一大特徵值對應的特徵向量方向。第二主軸方向為第二大特徵值對應的特徵向量方向,以此類推,證明類似。

下面介紹第二種方法

方法二  奇異值法

這方法是從矩陣分析裡面總結的,隨便取個名叫奇異值法。

首先,對於向量x,其二範數(也就是模長)的平方為:

所以有:

把二次型化成乙個範數的形式,最大化上式也即這個問題:對於乙個矩陣,它對乙個向量做變換,變換前後的向量的模長伸縮尺度如何才能最大?這個很有趣,簡直就是把矩陣的真面目給暴露出來了。為了給出解答,下面引入矩陣分析中的乙個定理:

表示矩陣a的最大奇異值!乙個矩陣a的奇異值為aa'(或a'a)的特徵值開平方,前面講過aa'的特徵值都大於等於0。當x為單位向量時,上式就是我們的目標函式表示式。然而,上式只是告訴我們能取到最大值是多少,並沒有說取到最大值時x的方向,要想知道取到最大值時的方向,那就來證明這個定理吧!

考察對稱陣

設為其n個特徵值,並令與之對應的單位特徵向量為:

對了,忘了提醒,對稱陣不同特徵值對應的特徵向量兩兩正交!這組特徵向量構成了空間中的一組單位正交基。

任意取乙個向量x,將其表示為

則將代入上式可得

由於這些單位特徵向量兩兩正交,只有相同的做內積為1,不同的做內積為0.所以上式做內積出來的結果為:

根據特徵值的大小關係有

所以定理得證!

顯然,當時取得最大值

再回到我們的問題,需要最大化:

將x'代入上面證明過程中的矩陣a,則u1的方向即為a'a=(x')'x'=xx'對大特徵值對應的特徵向量的方向!

所以第一主軸已經找到,第二主軸為次大特徵值對應的特徵向量的方向,以此類推。

兩種方法殊途同歸,現在來解答關於主成分保留佔比的問題。上面我們知道第一主軸對應的最大值是最大奇異值(也就是aa'最大特徵值開平方),第二主軸對應的最大值是次大奇異值,以此類推。那麼假設取前r大奇異值對應的主軸作為提取的主成分,則提取後的資料資訊佔比為:

分子是前r大奇異值的平方和,分母是所有奇異值的平方和。

到此,主成分分析pca就講完了,文章最後提到了奇異值,關於這個,後面的奇異值分解(svd)文章將會詳細講解並給出其具體應用!

PCA和LDA之直觀理解

pca和lda都是經典的降維演算法。pca是無監督的,也就是訓練樣本不需要標籤 lda是有監督的,也就是訓練樣本需要標籤。pca是去除掉原始資料中冗餘的維度,而lda是尋找乙個維度,使得原始資料在該維度上投影後不同類別的資料盡可能分離開來。pca是一種正交投影,它的思想是使得原始資料在投影子空間的各...

初探PCA原理與推導

pca原理 將n維資料對映到由k維相互正交的向量確定的空間上。實現流程 1.計算原特徵資料的協方差矩陣,並計算協方差矩陣的特徵值。2.按照大小對所計算的特徵值進行排序,選取前k大的特徵值所對應的特徵向量,將其轉化為單位向量。3.對所有資料都減去其對應的平均值,做中心化。這相當於得到期望值為0,標準差...

主成分分析 PCA 的一種直觀理解

源自知乎的乙個答案,網上很多關於pca的文章,不過很多都只講到了如何理解方差的投影,卻很少有講到為什麼特徵向量就是投影方向。本文從形象角度談一談,因為沒有證明,所以不會嚴謹,但是應該能夠幫助形象理解pca背後的原理。從定義來理解特徵向量的話,就是經過乙個矩陣變換後,空間沿著特徵向量的方向上相當於只發...