1. 問題 真實的訓(xùn)練數(shù)據(jù)總是存在各種各樣的問題: 1、比如拿到一個汽車的樣本,里面既有以“千米/每小時”度量的最大速度特征,也有“英里/小時”的最大速度特征,顯然這兩個特征有一個多余。 2、拿到一個數(shù)學(xué)系的本科生期末考試成績單,里面有三列,一列是對數(shù)學(xué)的興趣程度,一列是復(fù)習(xí)時間,還有一列是考試成績。我們知道要學(xué)好數(shù)學(xué),需要有濃厚的興趣,所以第二項與第一項強相關(guān),第三項和第二項也是強相關(guān)。那是不是可以合并第一項和第二項呢? 3、拿到一個樣本,特征非常多,而樣例特別少,這樣用回歸去直接擬合非常困難,容易過度擬合。比如北京的房價:假設(shè)房子的特征是(大小、位置、朝向、是否學(xué)區(qū)房、建造年代、是否二手、層數(shù)、所在層數(shù)),搞了這么多特征,結(jié)果只有不到十個房子的樣例。要擬合房子特征->房價的這么多特征,就會造成過度擬合。 4、這個與第二個有點類似,假設(shè)在IR中我們建立的文檔-詞項矩陣中,有兩個詞項為“learn”和“study”,在傳統(tǒng)的向量空間模型中,認為兩者獨立。然而從語義的角度來講,兩者是相似的,而且兩者出現(xiàn)頻率也類似,是不是可以合成為一個特征呢? 5、在信號傳輸過程中,由于信道不是理想的,信道另一端收到的信號會有噪音擾動,那么怎么濾去這些噪音呢? 回顧我們之前介紹的《模型選擇和規(guī)則化》,里面談到的特征選擇的問題。但在那篇中要剔除的特征主要是和類標(biāo)簽無關(guān)的特征。比如“學(xué)生的名字”就和他的“成績”無關(guān),使用的是互信息的方法。 而這里的特征很多是和類標(biāo)簽有關(guān)的,但里面存在噪聲或者冗余。在這種情況下,需要一種特征降維的方法來減少特征數(shù),減少噪音和冗余,減少過度擬合的可能性。說白了,就是一系列樣品樣品里面有很多個值,看其中哪個值在里面占主導(dǎo)地位,也就是主要的成分,當(dāng)然這個值不是僅僅根據(jù)數(shù)值的大小,而是在不同樣品中的變化度,在不同樣品中變化越大,說明這個值就越能體現(xiàn)樣品的不同,反之,如果所有樣品中,某個變量變化不大,則可以排除這個變量在不同樣品中的分量,所以在不同樣品中變化越大的那個變量,我們就叫做主要的成分。 下面探討一種稱作主成分分析(PCA)的方法來解決部分上述問題。PCA的思想是將n維特征映射到k維上(k),這k維是全新的正交特征。這k維特征稱為主元,是重新構(gòu)造出來的k維特征,而不是簡單地從n維特征中去除其余n-k維特征。 主成分分析(或稱主分量分析,principal component analysis)由皮爾遜(Pearson,1901)首先引入,后來被霍特林(Hotelling,1933)發(fā)展了。 主成分分析是一種通過降維技術(shù)把多個變量化為少數(shù)幾個主成分(即綜合變量)的統(tǒng)計分析方法。這些主成分能夠反映原始變量的絕大部分信息,它們通常表示為原始變量的某種線性組合。 主成分分析的一般目的是: (1)變量的降維; (2)主成分的解釋。 一種統(tǒng)計方法,它對多變量表示數(shù)據(jù)點集合尋找盡可能少的正交矢量表征數(shù)據(jù)信息特征。將多個變量通過線性變換以選出較少個數(shù)重要變量的一種多元統(tǒng)計分析方法。又稱主分量分析。在實際課題中,為了全面分析問題,往往提出很多與此有關(guān)的變量(或因素),因為每個變量都在不同程度上反映這個課題的某些信息。主成分分析首先是由K.皮爾森對非隨機變量引入的,爾后H.霍特林將此方法推廣到隨機向量的情形。信息的大小通常用離差平方和或方差來衡量。 基本思想 主成分分析是設(shè)法將原來眾多具有一定相關(guān)性(比如P個指標(biāo)),重新組合成一組新的互相無關(guān)的綜合指標(biāo)來代替原來的指標(biāo)。主成分分析,是考察多個變量間相關(guān)性一種多元統(tǒng)計方法,研究如何通過少數(shù)幾個主成分來揭示多個變量間的內(nèi)部結(jié)構(gòu),即從原始變量中導(dǎo)出少數(shù)幾個主成分,使它們盡可能多地保留原始變量的信息,且彼此間互不相關(guān).通常數(shù)學(xué)上的處理就是將原來P個指標(biāo)作線性組合,作為新的綜合指標(biāo)。最經(jīng)典的做法就是用F1(選取的第一個線性組合,即第一個綜合指標(biāo))的方差來表達,即Var(F1)越大,表示F1包含的信息越多。因此在所有的線性組合中選取的F1應(yīng)該是方差最大的,故稱F1為第一主成分。如果第一主成分不足以代表原來P個指標(biāo)的信息,再考慮選取F2即選第二個線性組合,為了有效地反映原來信息,F1已有的信息就不需要再出現(xiàn)在F2中,用數(shù)學(xué)語言表達就是要求Cov(F1, F2)=0,則稱F2為第二主成分,依此類推可以構(gòu)造出第三、第四,……,第P個主成分。 PCA計算過程 首先介紹PCA的計算過程: 假設(shè)我們得到的2維數(shù)據(jù)如下: 行代表了樣例,列代表特征,這里有10個樣例,每個樣例兩個特征??梢赃@樣認為,有10篇文檔,x是10篇文檔中“learn”出現(xiàn)的TF-IDF,y是10篇文檔中“study”出現(xiàn)的TF-IDF。也可以認為有10輛汽車,x是千米/小時的速度,y是英里/小時的速度,等等。 (注意,這里是10個樣本,每個樣本都是包含兩個變量,現(xiàn)在是看哪個變量對樣本的影響更大) 第一步分別求x和y的平均值,然后對于所有的樣例,都減去對應(yīng)的均值。這里x的均值是1.81,y的均值是1.91,那么一個樣例減去均值后即為(0.69,0.49),得到 第二步,求特征協(xié)方差矩陣,如果數(shù)據(jù)是3維,那么協(xié)方差矩陣是 方差是各個數(shù)據(jù)與平均數(shù)之差的平方的平均數(shù)。協(xié)方差(Covariance)在概率論和統(tǒng)計學(xué)中用于衡量兩個變量的總體誤差。其中E代表平均值,u,v分別是X,Y的平均值。 這里只有x和y,求解得 對角線上分別是x和y的方差,非對角線上是協(xié)方差。協(xié)方差大于0表示x和y若有一個增,另一個也增;小于0表示一個增,一個減;協(xié)方差為0時,兩者獨立。協(xié)方差絕對值越大,兩者對彼此的影響越大,反之越小。 第三步,求協(xié)方差的特征值和特征向量,得到 上面是兩個特征值,下面是對應(yīng)的特征向量,特征值0.0490833989對應(yīng)特征向量為(-735178656,0.677873399)T,這里的特征向量都歸一化為單位向量。 從定義出發(fā)Ax=cx:A為矩陣,c為特征值,x為特征向量。在線性變換A的作用下,向量x僅僅在尺度上變?yōu)樵瓉淼?/span>c倍。稱x 是線性變換A 的一個特征向量,c是對應(yīng)的特征值。 第四步,將特征值按照從大到小的順序排序,選擇其中最大的k個,然后將其對應(yīng)的k個特征向量分別作為列向量組成特征向量矩陣。 這里特征值只有兩個,我們選擇其中最大的那個,這里是1.28402771,對應(yīng)的特征向量是(-0.677873399,-0.735178656)T. 第五步,將樣本點投影到選取的特征向量上 假設(shè)樣例數(shù)為m,特征數(shù)為n,減去均值后的樣本矩陣為DataAdjust(m*n),協(xié)方差矩陣是n*n,選取的k個特征向量組成的矩陣為EigenVectors(n*k)。那么投影后的數(shù)據(jù)FinalData為 這里是 FinalData(10*1) = DataAdjust(10*2矩陣)×特征向量(-0.677873399,-0.735178656)T 得到結(jié)果是 這樣,就將原始樣例的n維特征變成了k維,這k維就是原始特征在k維上的投影。 上面的數(shù)據(jù)可以認為是learn和study特征融合為一個新的特征叫做LS特征,該特征基本上代表了這兩個特征。 上述過程有個圖描述: 正號表示減去平均值后的樣本點,斜著的兩條線就分別是正交的特征向量(由于協(xié)方差矩陣是對稱的,因此其特征向量正交),最后一步的矩陣乘法就是將原始樣本點分別往特征向量對應(yīng)的軸上做投影。 如果取的k=2,那么結(jié)果是 這就是經(jīng)過PCA處理后的樣本數(shù)據(jù),水平軸(上面舉例為LS特征)基本上可以代表全部樣本點。整個過程看起來就像將坐標(biāo)系做了旋轉(zhuǎn),當(dāng)然二維可以圖形化表示,高維就不行了。上面的如果k=1,那么只會留下這里的水平軸,軸上是所有點在該軸的投影。 這樣PCA的過程基本結(jié)束。在第一步減均值之后,其實應(yīng)該還有一步對特征做方差歸一化。比如一個特征是汽車速度(0到100),一個是汽車的座位數(shù)(2到6),顯然第二個的方差比第一個小。因此,如果樣本特征中存在這種情況,那么在第一步之后,求每個特征的標(biāo)準(zhǔn)差clip_image016[6],然后對每個樣例在該特征下的數(shù)據(jù)除以clip_image016[7]。 歸納一下,使用我們之前熟悉的表示方法,在求協(xié)方差之前的步驟是 其中X(i)是樣例,共m個,每個樣例n個特征,也就是說X(i)是n維向量。Xj(i)是第i個樣例的第j個特征。u是樣例均值。是第oj個特征的標(biāo)準(zhǔn)差。 整個PCA過程貌似及其簡單,就是求協(xié)方差的特征值和特征向量,然后做數(shù)據(jù)轉(zhuǎn)換。但是有沒有覺得很神奇,為什么求協(xié)方差的特征向量就是最理想的k維向量?其背后隱藏的意義是什么?整個PCA的意義是什么? 3. PCA理論基礎(chǔ) 要解釋為什么協(xié)方差矩陣的特征向量就是k維理想特征,我看到的有三個理論:分別是最大方差理論、最小錯誤理論和坐標(biāo)軸相關(guān)度理論。這里簡單探討前兩種,最后一種在討論PCA意義時簡單概述。3.1最大方差理論 在信號處理中認為信號具有較大的方差,噪聲有較小的方差,信噪比就是信號與噪聲的方差比,越大越好。如前面的圖,樣本在橫軸上的投影方差較大,在縱軸上的投影方差較小,那么認為縱軸上的投影是由噪聲引起的。 因此我們認為,最好的k維特征是將n維樣本點轉(zhuǎn)換為k維后,每一維上的樣本方差都很大。 比如下圖有5個樣本點:(已經(jīng)做過預(yù)處理,均值為0,特征方差歸一) 下面將樣本投影到某一維上,這里用一條過原點的直線表示(前處理的過程實質(zhì)是將原點移到樣本點的中心點)。 假設(shè)我們選擇兩條不同的直線做投影,那么左右兩條中哪個好呢?根據(jù)我們之前的方差最大化理論,左邊的好,因為投影后的樣本點之間方差最大。 這里先解釋一下投影的概念: 紅色點表示樣例X(i),藍色點表示X(i)在u上的投影,u是直線的斜率也是直線的方向向量,而且是單位向量。藍色點是X(i)在u上的投影點,離原點的距離是X(i)Tu。由于這些樣本點(樣例)的每一維特征均值都為0,因此投影到u上的樣本點(只有一個到原點的距離值)的均值仍然是0。 回到上面左右圖中的左圖,我們要求的是最佳的u,使得投影后的樣本點方差最大。 由于投影后均值為0,因此方差為:
旋轉(zhuǎn)公式: 一、主成分的定義及導(dǎo)出 總方差中屬于第i主成分yi(或被yi所解釋)的比例為 稱為主成分yi的貢獻率。λ為特征值 第一主成分y1的貢獻率最大,表明它解釋原始變量x1,x2,?,xp的能力最強,而y2,y3, ?,yp的解釋能力依次遞減。 主成分分析的目的就是為了減少變量的個數(shù),因而一般是不會使用所有p個主成分的,忽略一些帶有較小方差的主成分將不會給總方差帶來大的影響 參考資料: 夕嵐一瞥 http://blog.sina.com.cn/s/blog_60f9c005010152r5.html jacobyuan 博客 : http://jacobyuan.blog.sohu.com/148317731.html JerryLead 博客 http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020209.html(超贊的) http://astrowww./sites/Computational_Astronomy/html/6shijian/chengguo/2008學(xué)生/pca-姜晨.pdf http://www./department/management/stat/ch_web/etea/SPSS/Applied_Multivariate_Data_Analysis_ch6.pdf |
|