PCA(主成分分析)淺析

基本知識:

方差:     少了個平方 


協方差:協方差用於衡量兩個變量的總體誤差情況,可以說方差是協方差的一種特殊情況,即當兩個變量是相同的情況   

          

        

  

而協方差矩陣是一個矩陣,其每個元素是各個向量元素之間的協方差。是從標量隨機變量到高維度隨機變量的自然推廣。


特徵值(向量):設A爲n階矩陣,若存在常數λ及n維非零向量x,使得Ax=λx,則稱λ是矩陣A的特徵值,x是A屬於特徵值λ的特徵向量。


基本原理:

PCA通過線性變換將原始數據變換爲一組各維度線性無關的表示,可用於提取數據的主要特徵分量,常用於高維數據的降維

PCA 主要用於數據降維,對於一系列例子的特徵組成的多維向量,多維向量裏的某些元素本身沒有區分性,比如某個元素在所有的例子中都爲1,或者與1差距不大,那麼這個元素本身就沒有區分性,用它做特徵來區分,貢獻會非常小。

所以我們的目的是找那些變化大的元素,即方差大的那些維,而去除掉那些變化不大的維,從而使特徵留下的都是“精品”,而且計算量也變小了。


基本步驟:

對於一個訓練集,100個對象模板,特徵是10維,那麼它可以建立一個100*10的矩陣,作爲樣本。

求這個樣本的協方差矩陣,得到一個10*10的協方差矩陣。

然後求出這個協方差矩陣的特徵值和特徵向量,應該有10個特徵值和特徵向量,我們根據特徵值的大小,取前四個特徵值所對應的特徵向量,構成一個10*4的矩陣,這個矩陣就是我們要求的特徵矩陣。

100*10的樣本矩陣乘以這個10*4的特徵矩陣,就得到了一個100*4的新的降維之後的樣本矩陣,每個特徵的維數下降了。

當給定一個測試的特徵集之後,比如1*10維的特徵,乘以上面得到的10*4的特徵矩陣,便可以得到一個1*4的特徵,用這個特徵去分類。


意義:我們一般需要計算特徵向量的貢獻率來確定最終降維的數目k,貢獻率即最前面的k個特徵值所佔的比重大於90%(不是定值)以上即可


注意:PCA是針對Z-score預處理這種情況來做的

數據標準化有兩種方法:min-max標準化;Z-score標準化方法。第一種是將數據歸一化到0-1之間;第二個是講數據歸一化到N(0,1)的分佈上


此外:PCA的變換矩陣是協方差矩陣,K-L變換的變換矩陣可以有很多種(二階矩陣、協方差矩陣、總類內 ...),所以PCA變換是一種特殊的K-L變換



個人的理解:

對於所有的特徵向量(n維),實質上就是提取到的特徵映射到n個正交基上,PCA就是做了個基變換。

而用較少的基去表示較多的基形成的特徵向量,會遇到一個問題,你必須捨棄一些維度上的特徵。那怎麼選擇呢?PCA的思想就是去選擇那些方差大的維數,同時呢,它希望轉換後的基的相關性很弱

也就是說,現在目標就是:將一組N維向量降爲K維(K大於0,小於N),其目標是選擇K個單位(模爲1)正交基,使得原始數據變換到這組基上後,各字段兩兩間協方差爲0,而字段的方差則儘可能大(在正交的約束下,取最大的K個方差)。

這個意思就是,我們希望實現協方差矩陣的對角化,並且將對角對角線上將元素按大小從上到下排列

其實,對角化在數學上已經有過很多研究,本質就是計算特徵向量,保留向量的前K個,即是它變換後的基


參考博文:

http://blog.csdn.net/xiaojidan2011/article/details/11595869

http://blog.csdn.net/Lu597203933/article/details/41544547 



發佈了33 篇原創文章 · 獲贊 21 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章