主成分分析详解_pca主成分分析贡献率
Jetbrains全家桶1年46,售后保障穩(wěn)定
一、PCA簡介
1. 相關(guān)背景
上完陳恩紅老師的《機(jī)器學(xué)習(xí)與知識發(fā)現(xiàn)》和季海波老師的《矩陣代數(shù)》兩門課之后,頗有體會(huì)。最近在做主成分分析和奇異值分解方面的項(xiàng)目,所以記錄一下心得體會(huì)。
在許多領(lǐng)域的研究與應(yīng)用中,往往需要對反映事物的多個(gè)變量進(jìn)行大量的觀測,收集大量數(shù)據(jù)以便進(jìn)行分析尋找規(guī)律。多變量大樣本無疑會(huì)為研究和應(yīng)用提供了豐富的信息,但也在一定程度上增加了數(shù)據(jù)采集的工作量,更重要的是在多數(shù)情況下,許多變量之間可能存在相關(guān)性,從而增加了問題分析的復(fù)雜性,同時(shí)對分析帶來不便。如果分別對每個(gè)指標(biāo)進(jìn)行分析,分析往往是孤立的,而不是綜合的。盲目減少指標(biāo)會(huì)損失很多信息,容易產(chǎn)生錯(cuò)誤的結(jié)論。
因此需要找到一個(gè)合理的方法,在減少需要分析的指標(biāo)同時(shí),盡量減少原指標(biāo)包含信息的損失,以達(dá)到對所收集數(shù)據(jù)進(jìn)行全面分析的目的。由于各變量間存在一定的相關(guān)關(guān)系,因此有可能用較少的綜合指標(biāo)分別綜合存在于各變量中的各類信息。主成分分析與因子分析就屬于這類降維的方法。
2. 問題描述
下表1是某些學(xué)生的語文、數(shù)學(xué)、物理、化學(xué)成績統(tǒng)計(jì):
首先,假設(shè)這些科目成績不相關(guān),也就是說某一科目考多少分與其他科目沒有關(guān)系。那么一眼就能看出來,數(shù)學(xué)、物理、化學(xué)這三門課的成績構(gòu)成了這組數(shù)據(jù)的主成分(很顯然,數(shù)學(xué)作為第一主成分,因?yàn)閿?shù)學(xué)成績拉的最開)。為什么一眼能看出來?因?yàn)樽鴺?biāo)軸選對了!下面再看一組學(xué)生的數(shù)學(xué)、物理、化學(xué)、語文、歷史、英語成績統(tǒng)計(jì),見表2,還能不能一眼看出來:
數(shù)據(jù)太多了,以至于看起來有些凌亂!也就是說,無法直接看出這組數(shù)據(jù)的主成分,因?yàn)樵谧鴺?biāo)系下這組數(shù)據(jù)分布的很散亂。究其原因,是因?yàn)闊o法撥開遮住肉眼的迷霧~如果把這些數(shù)據(jù)在相應(yīng)的空間中表示出來,也許你就能換一個(gè)觀察角度找出主成分。如下圖1所示:
但是,對于更高維的數(shù)據(jù),能想象其分布嗎?就算能描述分布,如何精確地找到這些主成分的軸?如何衡量你提取的主成分到底占了整個(gè)數(shù)據(jù)的多少信息?所以,我們就要用到主成分分析的處理方法。
3. 數(shù)據(jù)降維
為了說明什么是數(shù)據(jù)的主成分,先從數(shù)據(jù)降維說起。數(shù)據(jù)降維是怎么回事兒?假設(shè)三維空間中有一系列點(diǎn),這些點(diǎn)分布在一個(gè)過原點(diǎn)的斜面上,如果你用自然坐標(biāo)系x,y,z這三個(gè)軸來表示這組數(shù)據(jù)的話,需要使用三個(gè)維度,而事實(shí)上,這些點(diǎn)的分布僅僅是在一個(gè)二維的平面上,那么,問題出在哪里?如果你再仔細(xì)想想,能不能把x,y,z坐標(biāo)系旋轉(zhuǎn)一下,使數(shù)據(jù)所在平面與x,y平面重合?這就對了!如果把旋轉(zhuǎn)后的坐標(biāo)系記為x’,y’,z’,那么這組數(shù)據(jù)的表示只用x’和y’兩個(gè)維度表示即可!當(dāng)然了,如果想恢復(fù)原來的表示方式,那就得把這兩個(gè)坐標(biāo)之間的變換矩陣存下來。這樣就能把數(shù)據(jù)維度降下來了!但是,我們要看到這個(gè)過程的本質(zhì),如果把這些數(shù)據(jù)按行或者按列排成一個(gè)矩陣,那么這個(gè)矩陣的秩就是2!這些數(shù)據(jù)之間是有相關(guān)性的,這些數(shù)據(jù)構(gòu)成的過原點(diǎn)的向量的最大線性無關(guān)組包含2個(gè)向量,這就是為什么一開始就假設(shè)平面過原點(diǎn)的原因!那么如果平面不過原點(diǎn)呢?這就是數(shù)據(jù)中心化的緣故!將坐標(biāo)原點(diǎn)平移到數(shù)據(jù)中心,這樣原本不相關(guān)的數(shù)據(jù)在這個(gè)新坐標(biāo)系中就有相關(guān)性了!有趣的是,三點(diǎn)一定共面,也就是說三維空間中任意三點(diǎn)中心化后都是線性相關(guān)的,一般來講n維空間中的n個(gè)點(diǎn)一定能在一個(gè)n-1維子空間中分析!
上一段文字中,認(rèn)為把數(shù)據(jù)降維后并沒有丟棄任何東西,因?yàn)檫@些數(shù)據(jù)在平面以外的第三個(gè)維度的分量都為0。現(xiàn)在,假設(shè)這些數(shù)據(jù)在z’軸有一個(gè)很小的抖動(dòng),那么我們?nèi)匀挥蒙鲜龅亩S表示這些數(shù)據(jù),理由是我們可以認(rèn)為這兩個(gè)軸的信息是數(shù)據(jù)的主成分,而這些信息對于我們的分析已經(jīng)足夠了,z’軸上的抖動(dòng)很有可能是噪聲,也就是說本來這組數(shù)據(jù)是有相關(guān)性的,噪聲的引入,導(dǎo)致了數(shù)據(jù)不完全相關(guān),但是,這些數(shù)據(jù)在z’軸上的分布與原點(diǎn)構(gòu)成的夾角非常小,也就是說在z’軸上有很大的相關(guān)性,綜合這些考慮,就可以認(rèn)為數(shù)據(jù)在x’,y’軸上的投影構(gòu)成了數(shù)據(jù)的主成分!
課堂上老師談到的特征選擇的問題,其實(shí)就是要剔除的特征主要是和類標(biāo)簽無關(guān)的特征。而這里的特征很多是和類標(biāo)簽有關(guān)的,但里面存在噪聲或者冗余。在這種情況下,需要一種特征降維的方法來減少特征數(shù),減少噪音和冗余,減少過度擬合的可能性。
PCA的思想是將n維特征映射到k維上(k<n),這k維是全新的正交特征。這k維特征稱為主成分,是重新構(gòu)造出來的k維特征,而不是簡單地從n維特征中去除其余n-k維特征。
二、PCA實(shí)例
現(xiàn)在假設(shè)有一組數(shù)據(jù)如下:
行代表了樣例,列代表特征,這里有10個(gè)樣例,每個(gè)樣例兩個(gè)特征。可以這樣認(rèn)為,有10篇文檔,x是10篇文檔中“l(fā)earn”出現(xiàn)的TF-IDF,y是10篇文檔中“study”出現(xiàn)的TF-IDF。
第一步,分別求x和y的平均值,然后對于所有的樣例,都減去對應(yīng)的均值。這里x的均值是1.81,y的均值是1.91,那么一個(gè)樣例減去均值后即為(0.69,0.49),得到
第二步,求特征協(xié)方差矩陣,如果數(shù)據(jù)是3維,那么協(xié)方差矩陣是
這里只有x和y,求解得
對角線上分別是x和y的方差,非對角線上是協(xié)方差。協(xié)方差是衡量兩個(gè)變量同時(shí)變化的變化程度。協(xié)方差大于0表示x和y若一個(gè)增,另一個(gè)也增;小于0表示一個(gè)增,一個(gè)減。如果x和y是統(tǒng)計(jì)獨(dú)立的,那么二者之間的協(xié)方差就是0;但是協(xié)方差是0,并不能說明x和y是獨(dú)立的。協(xié)方差絕對值越大,兩者對彼此的影響越大,反之越小。協(xié)方差是沒有單位的量,因此,如果同樣的兩個(gè)變量所采用的量綱發(fā)生變化,它們的協(xié)方差也會(huì)產(chǎn)生樹枝上的變化。
第三步,求協(xié)方差的特征值和特征向量,得到
上面是兩個(gè)特征值,下面是對應(yīng)的特征向量,特征值0.0490833989對應(yīng)特征向量為,這里的特征向量都?xì)w一化為單位向量。
第四步,將特征值按照從大到小的順序排序,選擇其中最大的k個(gè),然后將其對應(yīng)的k個(gè)特征向量分別作為列向量組成特征向量矩陣。
這里特征值只有兩個(gè),我們選擇其中最大的那個(gè),這里是1.28402771,對應(yīng)的特征向量是(-0.677873399,-0.735178656)T。
第五步,將樣本點(diǎn)投影到選取的特征向量上。假設(shè)樣例數(shù)為m,特征數(shù)為n,減去均值后的樣本矩陣為DataAdjust(m*n),協(xié)方差矩陣是n*n,選取的k個(gè)特征向量組成的矩陣為EigenVectors(n*k)。那么投影后的數(shù)據(jù)FinalData為
FinalData(10*1)=DataAdjust(10*2矩陣)x特征向量(-0.677873399,-0.735178656)T
得到的結(jié)果是
這樣,就將原始樣例的n維特征變成了k維,這k維就是原始特征在k維上的投影。
上面的數(shù)據(jù)可以認(rèn)為是learn和study特征融合為一個(gè)新的特征叫做LS特征,該特征基本上代表了這兩個(gè)特征。上述過程如下圖2描述:
正號表示預(yù)處理后的樣本點(diǎn),斜著的兩條線就分別是正交的特征向量(由于協(xié)方差矩陣是對稱的,因此其特征向量正交),最后一步的矩陣乘法就是將原始樣本點(diǎn)分別往特征向量對應(yīng)的軸上做投影。
整個(gè)PCA過程貌似及其簡單,就是求協(xié)方差的特征值和特征向量,然后做數(shù)據(jù)轉(zhuǎn)換。但是有沒有覺得很神奇,為什么求協(xié)方差的特征向量就是最理想的k維向量?其背后隱藏的意義是什么?整個(gè)PCA的意義是什么?
三、PCA推導(dǎo)
先看下面這幅圖:
在第一部分中,我們舉了一個(gè)學(xué)生成績的例子,里面的數(shù)據(jù)點(diǎn)是六維的,即每個(gè)觀測值是6維空間中的一個(gè)點(diǎn)。我們希望將6維空間用低維空間表示。
先假定只有二維,即只有兩個(gè)變量,它們由橫坐標(biāo)和縱坐標(biāo)所代表;因此每個(gè)觀測值都有相應(yīng)于這兩個(gè)坐標(biāo)軸的兩個(gè)坐標(biāo)值;如果這些數(shù)據(jù)形成一個(gè)橢圓形狀的點(diǎn)陣,那么這個(gè)橢圓有一個(gè)長軸和一個(gè)短軸。在短軸方向上,數(shù)據(jù)變化很少;在極端的情況,短軸如果退化成一點(diǎn),那只有在長軸的方向才能夠解釋這些點(diǎn)的變化了;這樣,由二維到一維的降維就自然完成了。
上圖中,u1就是主成分方向,然后在二維空間中取和u1方向正交的方向,就是u2的方向。則n個(gè)數(shù)據(jù)在u1軸的離散程度最大(方差最大),數(shù)據(jù)在u1上的投影代表了原始數(shù)據(jù)的絕大部分信息,即使不考慮u2,信息損失也不多。而且,u1、u2不相關(guān)。只考慮u1時(shí),二維降為一維。
橢圓的長短軸相差得越大,降維也越有道理。
1. 最大方差理論
在信號處理中認(rèn)為信號具有較大的方差,噪聲有較小的方差,信噪比就是信號與噪聲的方差比,越大越好。如前面的圖,樣本在u1上的投影方差較大,在u2上的投影方差較小,那么可認(rèn)為u2上的投影是由噪聲引起的。
因此我們認(rèn)為,最好的k維特征是將n維樣本點(diǎn)轉(zhuǎn)換為k維后,每一維上的樣本方差都很大。
比如我們將下圖中的5個(gè)點(diǎn)投影到某一維上,這里用一條過原點(diǎn)的直線表示(數(shù)據(jù)已經(jīng)中心化):
假設(shè)我們選擇兩條不同的直線做投影,那么左右兩條中哪個(gè)好呢?根據(jù)我們之前的方差最大化理論,左邊的好,因?yàn)橥队昂蟮臉颖军c(diǎn)之間方差最大(也可以說是投影的絕對值之和最大)。
計(jì)算投影的方法見下圖5:
圖中,紅色點(diǎn)表示樣例,藍(lán)色點(diǎn)表示在u上的投影,u是直線的斜率也是直線的方向向量,而且是單位向量。藍(lán)色點(diǎn)是在u上的投影點(diǎn),離原點(diǎn)的距離是<x,u>(即xTu或者uTx)。
2.最小二乘法
我們使用最小二乘法來確定各個(gè)主軸(主成分)的方向。
對給定的一組數(shù)據(jù)(下面的闡述中,向量一般均指列向量):
其數(shù)據(jù)中心位于:
數(shù)據(jù)中心化(將坐標(biāo)原點(diǎn)移到樣本點(diǎn)的中心點(diǎn)):
中心化后的數(shù)據(jù)在第一主軸u1方向上分布散的最開,也就是說在u1方向上的投影的絕對值之和最大(也可以說方差最大),計(jì)算投影的方法上面已經(jīng)闡述,就是將x與u1做內(nèi)積,由于只需要求u1的方向,所以設(shè)u1也是單位向量。
在這里,也就是最大化下式:
由矩陣代數(shù)相關(guān)知識可知,可以對絕對值符號項(xiàng)進(jìn)行平方處理,比較方便。所以進(jìn)而就是最大化下式:
兩個(gè)向量做內(nèi)積,可以轉(zhuǎn)化成矩陣乘法:
所以目標(biāo)函數(shù)可以表示為:
括號里面就是矩陣乘法表示向量內(nèi)積,由于列向量轉(zhuǎn)置以后是行向量,行向量乘以列向量得到一個(gè)數(shù),一個(gè)數(shù)的轉(zhuǎn)置還是其本身,所以又可以將目標(biāo)函數(shù)化為:
去括號:
又由于u1和i無關(guān),可以拿到求和符外面,上式化簡為:
學(xué)過矩陣代數(shù)的同學(xué)可能已經(jīng)發(fā)現(xiàn)了,上式括號里面求和后的結(jié)果,就相當(dāng)于一個(gè)大矩陣乘以自身的轉(zhuǎn)置,其中,這個(gè)大矩陣的形式如下:
X矩陣的第i列就是xi
于是有:
所以目標(biāo)函數(shù)最終化為:
其中的就是一個(gè)二次型,
我們假設(shè)的某一特征值為λ,對應(yīng)的特征向量為ξ,有
所以,是半正定的對稱矩陣,即是半正定陣的二次型,由矩陣代數(shù)知識得出,目標(biāo)函數(shù)存在最大值!
下面我們求解最大值、取得最大值時(shí)u1的方向這兩個(gè)問題。
先解決第一個(gè)問題,對于向量x的二范數(shù)平方為:
同樣,目標(biāo)函數(shù)也可以表示成映射后的向量的二范數(shù)平方:
把二次型化成一個(gè)范數(shù)的形式,由于u1取單位向量,最大化目標(biāo)函數(shù)的基本問題也就轉(zhuǎn)化為:對一個(gè)矩陣,它對一個(gè)向量做變換,變換前后的向量的模長伸縮尺度如何才能最大?我們有矩陣代數(shù)中的定理知,向量經(jīng)矩陣映射前后的向量長度之比的最大值就是這個(gè)矩陣的最大奇異值,即:
式中,是矩陣A的最大奇異值(亦是矩陣A的二范數(shù)),它等于(或)的最大特征值開平方。
針對本問題來說,是半正定對稱陣,也就意味著它的特征值都大于等于0,且不同特征值對應(yīng)的特征向量是正交的,構(gòu)成所在空間的一組單位正交基。
再解決第二個(gè)問題,對一般情況,設(shè)對稱陣的n個(gè)特征值分別為:
相應(yīng)的單位特征向量為:
任取一個(gè)向量x,用特征向量構(gòu)成的空間中的這組基表示為:
則:
所以:
針對第二個(gè)問題,我們?nèi)∩鲜街械模繕?biāo)函數(shù)取得最大值,也就是的最大特征值時(shí),對應(yīng)的特征向量的方向,就是第一主成分u1的方向!(第二主成分的方向?yàn)榈牡诙筇卣髦祵?yīng)的特征向量的方向,以此類推)。
證明完畢。
主成分所占整個(gè)信息的百分比可用下式計(jì)算:
式中分母為所有奇異值平方和,分子為所選取的前k大奇異值平方和。
有些研究工作表明,所選的主軸總長度占所有主軸長度之和的大約85%即可,其實(shí),這只是一個(gè)大體的說法,具體選多少個(gè),要看實(shí)際情況而定。
3.意義
PCA將n個(gè)特征降維到k個(gè),可以用來進(jìn)行數(shù)據(jù)壓縮,例如100維的向量最后可以用10維來表示,那么壓縮率為90%。同樣圖像處理領(lǐng)域的KL變換使用PCA做圖像壓縮,人臉檢測和匹配。比如如下摘自另一篇博客上的Matlab實(shí)驗(yàn)結(jié)果:
可見測試樣本為人臉的樣本的重建誤差顯然小于非人臉的重建誤差。
轉(zhuǎn)載于:https://blog.csdn.net/zhongkelee/article/details/44064401
總結(jié)
以上是生活随笔為你收集整理的主成分分析详解_pca主成分分析贡献率的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u6系统服务器启动不了,u6链接不到服务
- 下一篇: 华为服务器如何修改ftp密码,ftp怎么