cvpr讀書筆記[7]:pca的理解
下文中a'=a^t表示a的轉置.
n維資料的m個樣本構成的n*m維矩陣x, 尋找n*n的變換矩陣w, 使得變換後的矩陣y=w*x=y.
簡單的說如果w=(w1,w2,...wn)'中wi為變換後空間的基, 則上述變換即將x對映為新空間中m個n維的點. 這個對映關係是一對一的
如果只取新空間中的d個基組成的變換矩陣w0=(w1,w2,...wd)', 則w0*x為新空間中d*m維的矩陣, 即m個樣本的維數變為d, 實際即是在新空間中得到降維
這裡的矩陣相乘或者說是叫project, 其意義便是將x的每乙個列向量(樣本)對映到以w0為基構成的新空間中去. 在這裡, 因為維數得到降低, 並不能保證原空間域新空間中的點是一對一的關係了
至此,大家可能會說n維空間有無陣列基的可能,, 在這些基中又如何選擇d個使得m個n維樣本在其上的投影盡量保持原有資訊? 即如何使得新空間中d行的相關度最低?
為了尋找這組最優基組成的投影矩陣p, 一種方案是使樣本在新的正交座標系中的投影點盡量分散(幾何意義), 即其投影後的方差盡量大. 這通過將原n*m矩陣x的協方差矩陣進行對角化實現(代數意義).
(另一種我們可以從最小化投影誤差考慮)
設變換為y=px, 其中x為n*m維, p為d個n維基向量, 即d*n維, y為d*m維
y的協方差矩陣d=1/myy^t=1/m*pxx'p'=p(1/m*xx')p' , 其中c=1/m*xx'為x的協方差矩陣
因此需找project matrix p的問題現在變成尋找使得原樣本矩陣x的協方差矩陣c=1/m*xx'對角化的矩陣p,
x的協方差矩陣c為實對稱矩陣, 實對稱矩陣特性如下:
[1]必有n個特徵值且其值均大於0
[2]特徵值對應的特徵向量兩兩正交
設c的特徵值為
λ 1,λ
2 , ...
λ n
, 對應特徵向量為e1,e2,...en
則pn=(e1,e2,...en)^t便是乙個完整將x對映到新空間y的投影矩陣.
任取d個特徵向量按行組成的投影pd為乙個將x對映到d維子空間的投影矩陣
為了得到樣本資訊損失最小的投影矩陣p, 只需選擇特徵值最大的d個特徵值對應的特徵向量即可, 我們將特徵值排序,不失一般性, 仍記作
λ 1,λ
2 , ...
λ n
那麼p即為(e1,e2,...ed)'
x變換後的即降維後的d維樣本集合為y=px=(e1,e2,...ed)' x
pca演算法:
[1]對於m個n維樣本集合x,按列存放組成n*m矩陣
[2]x進行零均值化, 每個元素減去該行的均值(該維的均值)
[3]c=1/m*xx'
[4]計算c的特徵值及特徵向量, 並將其按照特徵值的大小排列
[5]根據方差保持的百分比決定選取保留多少個特徵值及特徵向量,或者直接指定保留p個. 這p個特徵向量組成投影矩陣p
[6]y=px即為降維後的矩陣
推廣:有時我們用行向量來表示特徵, 則上面的x為m*n維, m為樣本數, n為特徵數. 這樣我們實際找的便是變換矩陣p(n行p列)使得y=xp
道理是一樣的.
對於維數n>樣本數m的情形, 對於n*m的x來說c=1/m*xx'為n*n維實對稱矩陣
設a為1/m*x'x的特徵值, 即1/mx'xe=ae,
則1/mxx'xe=axe=cxe
即a也是c=1/mx'x的特徵值, 對應的特徵向量為xe
於是我們可以通過計算1/mx'x這個較小的m*m矩陣的特徵值a,與特徵向量e,得到c的特徵值a以及其對應特徵向量xe
參考文獻:
[1]"atutorial onprincipalcomponentsanalysis", lindsayismith,
[2]...很多很多...
PCA讀書筆記
pca是一種對高維度資料進行降維的一種方法,為了能夠了解pca的具體過程,一些數學知識,比如 期望,標準差,方差,協方差,特徵值,特徵向量等都是必須了解的。不過不要怕,我這裡先乙個乙個來介紹下這些概念。pca是一種常用的統計方法,什麼是統計分析的過程?就是用樣本資料的特徵去代表整體資料特徵,而統計就...
讀書筆記(7)
7.工程中的linux裝置驅動 platform裝置驅動 platform匯流排,會匹配相應的裝置和驅動。現實的裝置中都需要掛接一種匯流排,對於本身依附於pci,usb,i2c,spi裝置而言,這不會是問題,但是,如果不依賴於此類匯流排,linux發明了platform匯流排,相應的裝置叫platf...
Effective STL 讀書筆記 7
item 35 使用 mi atch 或者 lexicographical compare 實現簡單的忽略大小寫的字串比較函式。int ci compare const string s1,const string s2 int ci compare impl const string s1,con...