主成分分析(PCA)是一種常用的無監(jiān)督學(xué)習(xí)方法,這一方法利用正交變換把由現(xiàn)行相關(guān)變量表示的觀測數(shù)據(jù)轉(zhuǎn)化為少數(shù)幾個由線性無關(guān)變量表示的數(shù)據(jù),線性無關(guān)的變量稱為主成分。主成分的個數(shù)通常小于原始變量的個數(shù),所以主成分分析屬于姜維方法。主成分分析主要用于發(fā)現(xiàn)數(shù)據(jù)中的基本結(jié)構(gòu),即數(shù)據(jù)中變量之間的關(guān)系,是數(shù)據(jù)分析的有力工具,也用于其他機(jī)器學(xué)習(xí)方法的前處理。
一、總體主成分分析
1.基本想法
統(tǒng)計(jì)分析比中,數(shù)據(jù)的變量之間可能存在相關(guān)性,以致增加了分析的難度。于是,考慮由少數(shù)幾個不相關(guān)的變量來代替相關(guān)的變量,用來表示數(shù)據(jù),并且要求能夠保留數(shù)據(jù)中的不部分信息。
主成分分析中,首先對給定數(shù)據(jù)進(jìn)行規(guī)范化,使得數(shù)據(jù)每一變量的平均值為0,方差為1,。之后對數(shù)據(jù)進(jìn)行正交變換,用來由線性相關(guān)表示的數(shù)據(jù),通過正交變換變成若干個線性無關(guān)的新變量表示的數(shù)據(jù)。新變量是可能的正交變換中變量的方差和(信息保存)最大的,方差表示在新變量上信息的大小。將新變量一次成為第一主成分,第二主成分等。通過主成分分析,可以利用主成分近似地表示原始數(shù)據(jù),這可理解為發(fā)現(xiàn)數(shù)據(jù)的“基本結(jié)構(gòu)”;也可以把數(shù)據(jù)由少數(shù)主成分表示,這可理解為對數(shù)據(jù)降維。
方差最大的解釋。假設(shè)有兩個變量,三個樣本點(diǎn)A,B,C。樣本分布在由
軸組成的坐標(biāo)系中,對坐標(biāo)系進(jìn)行旋轉(zhuǎn)變換,得到新的坐標(biāo)軸
,表示新的變量
。坐標(biāo)值的平方和
表示樣本在變量
上的方差和。主成分分析旨在選取正交變換中方差最大的變量,作為第一主成分,也是是旋轉(zhuǎn)變換中坐標(biāo)值的平方和最大的軸。注意到旋轉(zhuǎn)變換中變換中樣本點(diǎn)到原點(diǎn)距離的平方和
不變,根據(jù)勾股定理,坐標(biāo)值的平方和最大
等價于樣本點(diǎn)到
軸的距離平方和
最小。所以,等價地,主成分分析在旋轉(zhuǎn)變換中選取離樣本點(diǎn)的距離的平方和最小的軸,作為第一主成分。第二主成分等的選取,在保證與已有坐標(biāo)軸正交的條件下,類似地進(jìn)行
2.定義和導(dǎo)出
假設(shè)是m維隨機(jī)變量,其均值是
,
協(xié)方差矩陣是
考慮到m維隨機(jī)變量到m維隨機(jī)變量
的線性變換
其中
由隨機(jī)變量的性質(zhì)可知
總體主成分的定義給定式(1)所示的線性變換,如果他們滿足下列條件
- 系數(shù)向量
是單位向量,即
- 變量
互不相關(guān),即
- 變量
是
的所有線性變換中方差最大的;
是與
不相關(guān)x的所有線性變換中方差最大的;一般地,
是與
都不相關(guān)的
的所有線性變換中方差最大的。這時分別稱
為
的第一主成分,第二主成分,
,第m主成分
3.主要性質(zhì)
設(shè)是m維隨機(jī)變量,
是
的協(xié)方差矩陣,
的特征值分別是
,特征值對應(yīng)的單位特征向量分別是
,則
的第k主成分是
的第k主成分的方差是
即協(xié)方差矩陣的第k個特征值
4.求主成分的方法
首先求的第一主成分
,即求系數(shù)向量
。第一主成分的
是在
的條件下,
的所有線性變換中使方差達(dá)到最大的
求第一主成分就是求解最優(yōu)化問題
定義拉格朗日函數(shù)
其中是拉格朗日乘子,將拉格朗日函數(shù)對
求導(dǎo),并令其為0,得
因此是
的特征值,
是對應(yīng)的單位特征向量。于是目標(biāo)函數(shù)
假設(shè)是
的最大特征值
對應(yīng)的單位特征向量,顯然
與
是最優(yōu)化問題的解,所以,
構(gòu)成第一主成分,其方差等于協(xié)方差矩陣的最大特征值
接著求的第二主成分
,第二主成分的
是在
且
與
不相關(guān)條件下,
的所有線性變換中使達(dá)到最大
求第二主成分需參求解約束最優(yōu)化問題
定義拉格朗日函數(shù)
其中對應(yīng)拉格朗日乘子。對
求偏導(dǎo),并令其為0,得
將方程左則乘以有
此式前兩項(xiàng)為0,且,導(dǎo)出
,因此式成為
由此, 是
的特征值,
是對應(yīng)的特征向量,于是目標(biāo)函數(shù)為
假設(shè)是
的第二大特征值
的特征向量,顯然
是以上最優(yōu)化問題的解。于是
構(gòu)成第二主成分,其方差等于協(xié)方差矩陣的第二大特征值,
按照上述方法可以求得第一、第二、直到第m個主成分,其系數(shù)向量分別是
的第一、第二、直到m個單位特征向量,
分別是對應(yīng)的特征值。并且,第k主成分的方差等于
的第k個特征值。
5.主成分的個數(shù)
主成分分析的主要目的是降維,所以一般選擇個主成分(線性無觀變量),使問題得以簡化,并能保留原有變量的大部分信息。這里所說的信息是指原有信息的方差。
對任意正整數(shù),考慮正交線性變換
其中是q的維向量,
是q*m維矩陣,令
的協(xié)方差矩陣為
則的跡
在
時取最大值,其中矩陣
是由正交矩陣A的前q列組成。
這表明,當(dāng)的線性變換
在
時,其協(xié)方差矩陣
的跡
取得最大值。也就是說,當(dāng)A取前
的前q個主成分時,能夠最大限度地保留原有變量方差的信息。
以上作為選擇k個主成分的理論依據(jù)。具體選擇k的方法,通常利用方差貢獻(xiàn)率。
第k主成分的方差貢獻(xiàn)率定義為
的方差與所有方差之和的比記作
k個主成分的累計(jì)方差貢獻(xiàn)率定義為k個方差之和和所有方差之和的比
通常取k使得累計(jì)方差貢獻(xiàn)率達(dá)到規(guī)定的百分比以上,例如70%~80%。累計(jì)方差貢獻(xiàn)率反映了主成分保留信息的比例,但它不能反映對某個原有變量保留信息的比例,這時通常利用k個主成分
對原有變量
的貢獻(xiàn)率。
k個主成分對原有變量
的貢獻(xiàn)率為
,
的相關(guān)系數(shù)的平方,記作
計(jì)算公式如下:
其中,是隨機(jī)變量
的方差,即協(xié)方差矩陣
的對角元素。
6.規(guī)范化變量的總體主成分
在實(shí)際問題中,不同變量可能有不同的量綱,直接求主成分有時會產(chǎn)生不合理的結(jié)果,為了消除這個影響,常常對各個隨機(jī)變量實(shí)施規(guī)范化,使其均值為0,方差為1
設(shè)為隨機(jī)變量,
為第i個隨機(jī)變量,
,令
其中,分布是隨機(jī)變量
的均值和方差,這時
就是
的規(guī)范化隨機(jī)變量。
二、樣本主成分分析
在實(shí)際問題中,需要在觀測數(shù)據(jù)上進(jìn)行主成分分析,這就是樣本主成分分析。樣本主成分也和總體主成分具體相同的性質(zhì)。
使用樣本主成分時,一般假設(shè)樣本數(shù)據(jù)是規(guī)范化的,即對樣本矩陣如下操作:
其中
樣本協(xié)方差矩陣S是中體協(xié)方差矩陣的無偏估計(jì),樣本相關(guān)矩陣R是總體相關(guān)矩陣的無偏估計(jì),S的特征值和特征向量
的特征值和特征向量的無偏估計(jì)。
1.相關(guān)矩陣的特征值和分解算法
傳統(tǒng)的主成分分析通過數(shù)據(jù)的協(xié)方差矩陣或相關(guān)矩陣的特征值分解進(jìn)行,現(xiàn)在常用的方法是通過數(shù)據(jù)矩陣的奇異值分解進(jìn)行。下面介紹數(shù)據(jù)的協(xié)方差矩陣或相關(guān)矩陣的分解方法
給定樣本矩陣,利用數(shù)據(jù)的樣本的協(xié)方差矩陣或樣本相關(guān)矩陣的特征值分解進(jìn)行主成分分析
- 對觀測數(shù)據(jù)進(jìn)行規(guī)范化處理,得到規(guī)范化數(shù)據(jù)矩陣,仍以
表示
- 依據(jù)規(guī)范化數(shù)據(jù)矩陣,計(jì)算樣本相關(guān)矩陣R
其中, - 求相關(guān)矩陣R的k個特征值和對應(yīng)的k個單位特征向量
求解R的特征方程
得R的m個特征值
求方差貢獻(xiàn)率達(dá)到與預(yù)定值的主成分個數(shù)k。求前k個主成分對應(yīng)的單位特征向量
- 求k個主成分
以k個單位特征矩陣為系數(shù)進(jìn)行線性變換,求出k個樣本主成分
- 計(jì)算k個主成分
與原變量
的相關(guān)系數(shù)
,以及k個主成分對原變量
的貢獻(xiàn)率
- 計(jì)算n個樣本的k個主成分值
將規(guī)范化樣本數(shù)據(jù)代入個主成分,得到n個樣本的主成分值,第j個樣本
的第i主成分值是
2.數(shù)據(jù)矩陣奇異值分解法
給定樣本矩陣,利用數(shù)據(jù)矩陣奇異值分解進(jìn)行主成分分析,這里沒有假設(shè)k個主成分
對于維實(shí)矩陣A,假設(shè)其秩為r,
,則可將矩陣A進(jìn)行截?cái)嗥娈愔捣纸?br>
式是
矩陣,
是k階對角矩陣,
分別由取A的完全奇異分解的矩陣U,V的前k列,
由完全奇異分解的矩陣
的前k個對角元素得到
定義一個新的矩陣
的每一列均值為0,
即等于X的協(xié)方差矩陣
主成分分析歸結(jié)于求協(xié)方差矩陣的特征值和對應(yīng)的單位特征向量。
假設(shè)的截?cái)嗥娈愔捣纸鉃?img class="math-inline" src="https://math.jianshu.com/math?formula=X'%3DU%5CSigma%20V%5ET" alt="X'=U\Sigma V^T" mathimg="1">,那么V 的列向量就是
的單位向量,因此V的列向量就是X的主成分。于是X求X的主成分可以通過
的奇異值來實(shí)現(xiàn)