PCA----降维
引言:
特征值分解:矩陣的作用就是線性變換(如旋轉(zhuǎn),伸縮,平移等),在一個空間當(dāng)中,矩陣左乘向量就是將向量線性變換成想要的效果,那么矩陣的特征值和特征向量是什么呢?
特征值、特征向量:在線性代數(shù)的定義當(dāng)中,特征值和特征向量的定義是這樣的,AX=rX ,則稱r為A的特征值,X稱為A的屬于特征值k的特征向量。
這里的矩陣A就是將向量X在空間當(dāng)中只進(jìn)行拉伸不進(jìn)行其他的線性變換,而特征值就是X在空間當(dāng)中的拉伸的倍數(shù),有些人將它形容成X這個向量的方向上的能量。
矩陣的特征值可以看做這個線性變換的不變的一維子空間,在這個子空間中,方向不變只是能量變化而已。而一些特殊的矩陣就可以全部分為好多個不變的一維子空間,而一般的矩陣除了部分不變的子空間之外還有其他的變換(比如旋轉(zhuǎn))。通俗來講就是比如一個二維矩陣作用于一個圓上,理解為一個線性變換,那么該矩陣的特征值在它的特征向量的兩個維度上將圓進(jìn)行拉伸成橢圓,剩下部分就是怎么將圓怎么旋轉(zhuǎn)了。
那么這樣做的目的是什么呢?就是講一個矩陣分解成不同的一維空間,如此就可以將相關(guān)研究分別限定在這些子空間中進(jìn)行,就好比物理中將運(yùn)動分為豎直運(yùn)動和水平運(yùn)動一樣更加直觀。
矩陣的特征分解與PCA的聯(lián)系:就是看矩陣在那個一維子空間中所占的特征值最大,若幾個相對較大的特征值相加站所有的特征值的絕大部分的話,就代表矩陣在這幾個一維子空間當(dāng)中所含的能量大,則這幾個一維子空間就可以約等于這個矩陣了,如此就可以做到降維,在矩陣維度非常大時這起到很大的作用。
奇異值分解:那么特征分解并不是萬能的,因?yàn)樗荒軐⒎疥嚪纸?#xff0c;如果是m*n的矩陣的話就不可以了,這種情況下就要用到奇異值分解了,即A=USVH,這里的U和VH都是正交矩陣(這兩個矩陣都相當(dāng)于旋轉(zhuǎn)),S為對角陣(相當(dāng)于伸縮),任何矩陣都可以通過一個一個旋轉(zhuǎn)一個伸縮一個旋轉(zhuǎn)得到,這里我是參考博客?矩陣特征值分解與奇異值分解的幾何意義的相關(guān)知識。那么這里的U,S,V怎么求呢?可以參考維基百科。其中的S就是對角元素為奇異值的對角矩陣,奇異值跟特征值類似,在矩陣A中也是從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上了。也就是說,我們也可以用前幾個大的奇異值來近似描述矩陣A。這里就和前面所說的特征值分解相關(guān)了,因?yàn)槠娈愔档扔诜秦?fù)的特征值的算術(shù)平方根。
一、PCA實(shí)現(xiàn)步驟:【換基】【線性】
PCA可以通過線性變換將原始數(shù)據(jù)變換為一組各維度線性無關(guān)的表示,以此來提取數(shù)據(jù)的主要線性分量。
z=wTx
其中,z為低維矩陣,x為高維矩陣,w為兩者之間的映射關(guān)系。
在PCA中,數(shù)據(jù)從原來的坐標(biāo)系轉(zhuǎn)換到新的坐標(biāo)系,由數(shù)據(jù)本身決定。轉(zhuǎn)換坐標(biāo)系時,以方差最大的方向作為坐標(biāo)軸方向,因?yàn)閿?shù)據(jù)的最大方差給出了數(shù)據(jù)的最重要的信息。第一個新坐標(biāo)軸選擇的是原始數(shù)據(jù)中方差最大的方法,第二個新坐標(biāo)軸選擇的是與第一個新坐標(biāo)軸正交且方差次大的方向。重復(fù)該過程,重復(fù)次數(shù)為原始數(shù)據(jù)的特征維數(shù)。
那么,我們?nèi)绾蔚玫竭@些包含最大差異性的主成分方向呢?事實(shí)上,通過計(jì)算數(shù)據(jù)矩陣的協(xié)方差矩陣,然后得到協(xié)方差矩陣的特征值及特征向量,選擇特征值最大(也即包含方差最大)的N個特征所對應(yīng)的特征向量組成的矩陣,我們就可以將數(shù)據(jù)矩陣轉(zhuǎn)換到新的空間當(dāng)中,實(shí)現(xiàn)數(shù)據(jù)特征的降維(N維)。
PCA主要就是實(shí)現(xiàn)降維,在一個高維的矩陣當(dāng)中將其降維這樣可以節(jié)省好多空間也可以使計(jì)算簡單,那么PCA是怎么實(shí)現(xiàn)的呢?步驟如下:
1.計(jì)算觀測矩陣的協(xié)方差矩陣V:
? Vij 為原變量Xi與Xj的樣本協(xié)方差。
2.計(jì)算特征值r和特征向量A
解得協(xié)方差矩陣的特征值r按大小排列r1>=r2>=r3>=……>=rn>=0,分別求出對應(yīng)于ri的單位特征向量ai=(ai1,ai2,ai3,……,aip)^T
3.計(jì)算PCA的主成分貢獻(xiàn)率和累計(jì)貢獻(xiàn)率
記,第i主成分貢獻(xiàn)率為ri/S,貢獻(xiàn)最大的m個主成分累計(jì)貢獻(xiàn)率為Sm/S.
一般取達(dá)80%~95%的r1,r2,……,rm所對應(yīng)的主成分。
4.求主成分
Y=AX,其中A為特征向量的矩陣,X為原觀察矩陣
二、PCA的物理意義
以上就是PCA的計(jì)算步驟,但為什么要這么求呢?
PCA的問題其實(shí)是一個基的變換,使得變換后的數(shù)據(jù)有最大的方差,方差大小代表一個變量所含的信息量,若方差=0的話輸入的多個數(shù)據(jù)就相當(dāng)于一個數(shù)據(jù)了,這就沒有意義了。
用A Tutorial on Principal Component Analysis論文中的一張圖來描述,上面的點(diǎn)為物體運(yùn)動的軌跡。
這張圖中signal方向上所含的信息較多理應(yīng)用這個方向來描述物體的運(yùn)動,但是投影到x,y軸上就不能區(qū)分signal這個方向與noise方向上的信息的方差了,為什么呢,因?yàn)閟ignal這個方向與x,y軸都成45度,那么這是要將坐標(biāo)系即基x,y軸轉(zhuǎn)變成signal與noise這兩個方向就易分出物體運(yùn)動軌跡的方差了。
一般方差大的方向就是所含信息最大的方向,PCA當(dāng)中就是找出一組相互正交的坐標(biāo)系,第一個軸就是使方差最大的,第二個軸就是與第一個軸正交也使方差最大的,第三個第四個也如此。這樣在高維空間中,如果前面m個軸所含的信息量足夠大,那么就可以用前m個軸來取代高維,這樣可以做到降維并且使得數(shù)據(jù)壓縮損失達(dá)到最小。
假設(shè)矩陣V的行代表一個樣本,列代表一個特征變量(這里很重要,協(xié)方差取得是變量之間的方差,而不是樣本的),將V進(jìn)行坐標(biāo)軸變換,在線性代數(shù)課本當(dāng)中有過將一個基過渡到另外一個基,如X=CY,就是將基Y過渡到X,其中C就是過渡矩陣,那么這里要將原來樣本矩陣V過渡到協(xié)方差矩陣,這里要把過渡矩陣C求出來也就是上面計(jì)算步驟的特征向量A,在求A的同時進(jìn)行了降維。在圖像處理當(dāng)中,圖像可以用像素的灰度形成的矩陣來表示,此時可以用PCA來將圖像矩陣來進(jìn)行壓縮,此時就可以將圖像一些干擾維度去掉找到圖像主成分,使圖像更加清晰。
? ? ? ?參考的博客:機(jī)器學(xué)習(xí)中的數(shù)學(xué)(5)-強(qiáng)大的矩陣奇異值分解(SVD)及其應(yīng)用
? ? ? ? ? ? ? ? ? ? ? ? ? ??理解矩陣(一) - 孟巖 - 博客頻道 - CSDN.NET
? ? ? ?參考的論文:A Tutorial on Principal Component Analysis
轉(zhuǎn)載于:https://www.cnblogs.com/Lee-yl/p/10109838.html
總結(jié)
- 上一篇: mysql-零基础安装
- 下一篇: 关于haproxy的重定向