基本概念梳理
主成分分析方法,是一種使用最廣泛的數據降維算法。主要思想是將n維特徵映射到k維上,這k維是全新的正交特徵,這些正交特徵也被稱爲主成分,是在原有n維特徵的基礎上重新構造出來的k維特徵。這k維構造得好不好,主要看k維空間下,對原始樣本空間中數據的特點是否進行了有效的保持,這樣機器學習性能纔不會大打折扣,保持越多構造得就越好。
這些k維空間的正交特徵可以理解爲k個座標軸,這k個座標軸的選取是有規律的,一般第一個座標軸選取原始數據中方差最大的方向,第m個座標軸選取與前m-1個正交且使得數據在該軸上投影的方差最大的。
於是可以發現,大部分的方差都包含在前面k個座標軸中,後面的座標軸所含的方差幾乎爲0,於是就可以忽略剩下的座標軸,只保留前面k個含有絕大部分方差的座標軸,實現對數據特徵的降維處理。
那麼如何去選取確定這些座標軸具體的方向呢?就需要用到協方差矩陣,確定協方差矩陣的特徵值對應的特徵向量,按特徵值大小來選取前k個座標軸(也就是特徵向量),即可確定座標軸了。事實上,主成分分析集成了大量線性代數和概率統計的知識點,可以看一下之前寫的幾篇博客,可作爲主成分分析的先導篇:透徹理解協方差與協方差矩陣、協方差矩陣的幾何性質、ESL3.4 學習筆記。
看過之後即可知道,其實線性迴歸中的嶺迴歸或者L2範數是根據數據在主成分方向上的數據分佈和奇異值的大小來收縮權重,還有主成分分析其實是依靠特徵值或奇異值分解協方差矩陣來進行的分析,都是有理有據令人信服的。
接下來就開始從統計學的角度,具體理解主成分分析。
再數據總體上進行的主成分分析稱爲總體主成分分析,在有限樣本上進行的主成分分析稱爲樣本主成分分析,前者是後者的基礎。
總體主成分分析
統計分析中,數據的變量之間存在的相關性增加了分析的難度。所以就有由少數不相關的變量來代替相關的變量的方法,來表示數據,並要求能保留數據中的大部分信息。
在主成分分析中,首先要對數據進行規範化,使得數據的每一個變量的平均值爲0,方差爲1。之後對數據進行正交變換,把原來由線性相關變量表示的數據,通過正交變換變換成由若干個線性無關的新變量表示的數據(線性無關是爲了區分開新變量,新變量上的方差大是爲了保證這個新變量具有重要意義)。通過主成分分析,可以利用主成分近似地表示原始數據,這就類似於發現數據的基本結構,也可以理解爲數據降維。
統計學習方法中的幾何解釋如下:
如果給定x=(x1,x2,⋯,xm)T是m爲隨機變量,其到m維隨機變量y=(y1,y2,⋯,ym)T的線性變換爲:
yi=αiTx=α1ix1+α2ix2+⋯+αmixm(16.1)
則有定義如下
這一部分的詳細解釋以及牽扯到的相關性質,在透徹理解協方差與協方差矩陣、協方差矩陣的幾何性質這兩篇博客中都有詳細的介紹,重複內容在此就不展開介紹了,看完這兩篇裏面的內容再理解本篇筆記的知識就變得非常容易了。
在使用主成分分析的時候,有一個最基本的定理被許多人忽視了,即
簡單講就是,爲什麼協方差矩陣特徵值從大到小排列之後,第幾個特徵值就對應第幾個主成分的方差?如果從協方差的幾何意義上考慮協方差矩陣的幾何性質這篇博客中給出了答案。如果從數學意義上推導,統計學習方法第二版301頁中給出了答案,用的是拉格朗日乘子法推導的。
此外,還有一個定理也常常被忽視。我們選擇k個線性無關的變量來代替m個原有的線性相關的變量,那麼爲什麼k是最優選擇呢?或者說爲什麼就可以代替原來的m個原有的線性相關的變量了呢?首先明確保留原有變量的大部分信息,這裏的信息是指原有變量的方差,這裏存在着如下定理:
y的協方差陣的跡就是y各個隨機變量的方差之和。通常令y的方差之和佔x的方差之和的70%~80%以上,這樣就反映了主成分保留信息的比例。
上面定理的證明主要證明步驟簡單說下:
B是縮減x的維度的一個列滿秩陣,也就是列向量(q個向量)線性無關。要證明的是B這樣縮減維度的矩陣,在取A的前q列時能保留最多信息。
證明思路就是,假設B和A無關,由於A是m維空間上的正交基,所以B可以由A的列表示:
βk=∑j=1mcjkαj,k=1,2,⋯,qB=AC
下面就通過上面的式子,寫出目標函數的表達式,也就是y協方差陣的跡的表達式。首先有
BTΣB=CTATΣAC=CTΛC=j=1∑mλjcjcjT
所以表達式爲
tr(BTΣB)=j=1∑mλjtr(cjcjT)=j=1∑mλjtr(cjTcj)=j=1∑mλjcjTcj=j=1∑mk=1∑qλjcjk2
這裏目標函數放在這了,下面就看看變量c的範圍是什麼。首先有
C=ATB
CTC=BTAATB=BTB=Iq
其實就是因爲A列正交,B列正交,所以得出C列也是正交的,於是
tr(CTC)=tr(Iq)∑j=1m∑k=1qcjk2=q
這時候可以把C看成是某個m階正交矩陣D的前q列,正交矩陣D行也正交,所以行的模也爲1,而c的長度是q僅僅代表D的前q個元素,所以c的行的模一定是小於等於1的。即
k=1∑qcjk2⩽1,j=1,2,⋯,m
那前面有條件∑j=1m∑k=1qcjk2=q,並且特徵值是從大到小排列的關係λ1⩾λ2⩾⋯⩾λq⩾⋯⩾λm,回顧一下目標函數的表達式是∑j=1m∑k=1qλjcjk2。所以肯定是給越大的特徵值分配最大的係數的方案是最佳的,於是
k=1∑qcjk2={1,0,j=1,⋯,qj=q+1,⋯,m
B=AC,仔細一看,C這樣取值時候的B不就是A的前q列嗎。
接下來就是規範化變量的總體主成分了。
在實際問題中,不同的變量可能有不同的量綱,直接求主成分有時會產生不合理的結果,所以需要對變量進行規範化之後再求主成分。
值得注意的是,規範化後的協方差矩陣就是樣本相關陣,也就是說對角線上元素是1,非對角線上元素是變量兩兩之間的相關係數。樣本相關陣的主成分有如下幾個性質。
- 規範化變量主成分的協方差矩陣是:A∗=diag(λ1∗,λ2∗,⋯,λm∗)
- 協方差矩陣的特徵值之和爲m:tr(ATΣA)=tr(ΣATA)=tr(Σ)=m
- 規範化隨機變量xi∗與主成分yk∗的相關係數如下,其中ek∗=(e1k∗,e2k∗,⋯,emk∗)T是樣本相關陣對應特徵值λk∗的單位特徵向量
ρ(yk∗,xi∗)=λk∗eik∗,k,i=1,2,⋯,m
- 所有規範化隨機變量xi∗與主成分yk∗的相關係數的平方和爲
i=1∑mρ2(yk∗,xi∗)=i=1∑mλk∗eik∗2=λk∗,k=1,2,⋯,m
- 規範化隨機變量xi∗與所有主成分yk∗的相關係數的平方和爲1:
k=1∑mρ2(yk∗,xi∗)=k=1∑mλk∗eik∗2=1,i=1,2,⋯,m
樣本主成分分析
樣本主成分分析和總體主成分分析的主要差別就在於協方差陣的求解上,具體就是方差的求解。樣本協方差陣S可表示爲
S=[sij]m×msij=n−11∑k=1n(xik−xˉi)(xjk−xˉj),i,j=1,2,⋯,m
樣本相關矩陣R爲
R=[rij]m×m,rij=siisjjsij,i,j=1,2,⋯,m
和前面的內容一樣,yi的樣本方差可寫爲
var(yi)=n−11j=1∑n(aiTxj−aiTx)2=aiT[n−11j=1∑n(xj−x)(xj−x)T]ai=aiTSai
yi和yk的樣本協方差可寫爲
cov(yi,yk)=aiTSak
對於規範化後的樣本數據矩陣X,樣本的協方差陣S也就是樣本相關矩陣R的表達式爲
R=S=n−1(X−X)(X−X)T=n−1XXT
這是一個對總體協方差陣的無偏估計。S的特徵值和特徵向量是總體協方差陣的特徵值與特徵向量的極大似然估計。
統計學習方法中對樣本主成分定義如下: