降維的目標(biāo)就是對輸入的數(shù)目進(jìn)行削減,由此剔除數(shù)據(jù)中噪聲并提高機(jī)器學(xué)習(xí)方法的性能。本章將介紹按照數(shù)據(jù)方差最大方向調(diào)整數(shù)據(jù)的主成分分析降維方法胸蛛。
之所以要降維习绢,是因?yàn)榻稻S之后渠抹,數(shù)據(jù)更容易進(jìn)行處理,而且其相關(guān)特征可能在數(shù)據(jù)中明確地顯示出來闪萄。
本章一開始對對降維技術(shù)進(jìn)行了綜述梧却,然后集中介紹一種應(yīng)用非常普遍的稱為主成分分析的技術(shù)。最后败去,通過一個(gè)數(shù)據(jù)集的例子來展示PCA的工作過程放航。
13.1? 降維技術(shù)
對數(shù)據(jù)進(jìn)行簡化的原因:(1)使數(shù)據(jù)在大規(guī)模特征下更加容易顯示。(2)使得數(shù)據(jù)更加容易使用圆裕。(3)降低很多算法的開銷广鳍。(4)去除噪聲荆几。(5)使得結(jié)果易懂。
在已標(biāo)注和未標(biāo)注的數(shù)據(jù)上都有降維技術(shù)赊时,這里我們關(guān)注的是在未標(biāo)注數(shù)據(jù)上的降維技術(shù)吨铸,該技術(shù)同時(shí)可以應(yīng)用到已標(biāo)注的數(shù)據(jù)。
第一種降維的方法稱為主成分分析(Principal Component Analysis, PCA)祖秒。在PCA中诞吱,數(shù)據(jù)從原來的坐標(biāo)系轉(zhuǎn)換到新的坐標(biāo)系,新坐標(biāo)系的選擇是由數(shù)據(jù)本身決定的竭缝。第一個(gè)新坐標(biāo)軸選擇的是原始數(shù)據(jù)中方差最大的方向房维,第二個(gè)新坐標(biāo)軸的選擇和第一個(gè)坐標(biāo)軸正交且具有最大方差的方向。該過程一直重復(fù)歌馍,重復(fù)次數(shù)為原始數(shù)據(jù)中特征的數(shù)目握巢。此時(shí)我們會(huì)發(fā)現(xiàn),大部分方差都包含在最前面的幾個(gè)新坐標(biāo)軸中松却。因此暴浦,我們可以忽略余下的坐標(biāo)軸,即對數(shù)據(jù)進(jìn)行降維處理晓锻。
另外一種降維技術(shù)是因子分析(Factor Analysis)歌焦。在因子分析中,我們假設(shè)在觀察數(shù)據(jù)的生成中有一些觀察不到的隱變量砚哆。假設(shè)觀察數(shù)據(jù)是這些隱變量和某些噪聲的線性組合独撇。那么隱變量的數(shù)據(jù)可能比觀察數(shù)據(jù)的數(shù)目少,也就是說通過找到隱變量就可以實(shí)現(xiàn)數(shù)據(jù)的降維躁锁。
還有一種降維技術(shù)技術(shù)獨(dú)立成分分析(Independent Component Analysis, ICA)纷铣。ICA假設(shè)數(shù)據(jù)是從N個(gè)數(shù)據(jù)源生成的,這一點(diǎn)和因子分析有點(diǎn)類似战转。假設(shè)數(shù)據(jù)是多個(gè)數(shù)據(jù)源的混合觀察結(jié)果搜立,這些數(shù)據(jù)源在統(tǒng)計(jì)上是相互獨(dú)立的,而在PCA中只假設(shè)數(shù)據(jù)是不相關(guān)的槐秧。同因子分析一樣啄踊,如果數(shù)據(jù)源的數(shù)目少于觀察數(shù)據(jù)的數(shù)目,則可以實(shí)現(xiàn)降維刁标。
13.2? PCA
13.2.1? 移動(dòng)坐標(biāo)軸
通過PCA降維可以同時(shí)獲得SVM和決策樹的優(yōu)點(diǎn):(1)得到了和決策樹一樣簡單的分類器颠通,同時(shí)分類間隔和SVM一樣好。(2)只需要考慮一維信息膀懈,數(shù)據(jù)可通過比SVM簡單得多的很容易采用的規(guī)則進(jìn)行區(qū)分顿锰。
接下來,我們就可以通過代碼來實(shí)現(xiàn)PCA過程。我們曾經(jīng)提到撵儿,第一個(gè)主成分就是數(shù)據(jù)差異性最大(即方差最大)的方向提取出來的乘客,第二個(gè)主成分則來自于數(shù)據(jù)差異性次大的方向,并且該方向與第一個(gè)主成分方向正交淀歇。通過對數(shù)據(jù)集的協(xié)方差矩陣及其特征值分析易核,我們就可以求得這些主成分的值。
一旦得到協(xié)方差矩陣的特征向量浪默,我們就可以保留最大的N個(gè)值牡直。這些特征向量也給出了N個(gè)最重要特征的真實(shí)結(jié)構(gòu)。我們可以通過將數(shù)據(jù)乘上這N個(gè)特征向量而將它們轉(zhuǎn)換到新的空間纳决。
13.2.2? 在NumPython中實(shí)現(xiàn)PCA
將數(shù)據(jù)轉(zhuǎn)換成前N個(gè)主成分的偽碼大致如下:
???? 去除平均值
???? 計(jì)算協(xié)方差矩陣
???? 計(jì)算協(xié)方差矩陣的特征值和特征向量
???? 將特征值從大到小排序
???? 保留最上面的N個(gè)特征向量
???? 將數(shù)據(jù)轉(zhuǎn)換到上述N個(gè)特征向量構(gòu)建的新空間
13.3? 本章小結(jié)
降維技術(shù)使得數(shù)據(jù)變得更加容易使用碰逸,并且它們往往能夠去除數(shù)據(jù)中的噪聲,使得其他機(jī)器學(xué)習(xí)任務(wù)更加精確阔加。降維往往作為預(yù)處理步驟饵史,在數(shù)據(jù)應(yīng)用到其他算法之前清洗數(shù)據(jù)。有很多技術(shù)可以用于數(shù)據(jù)降維胜榔,在這些技術(shù)中胳喷,獨(dú)立成分分析、因子分析和主成分分析比較流行夭织,其中又以主成分分析應(yīng)用廣泛吭露。
PCA可以從數(shù)據(jù)中識(shí)別其主要特征,它是通過沿著數(shù)據(jù)最大方差方向旋轉(zhuǎn)坐標(biāo)軸來實(shí)現(xiàn)的尊惰。選擇方差最大的方向作為第一條坐標(biāo)軸讲竿,后續(xù)坐標(biāo)軸則與前面的坐標(biāo)軸正交。協(xié)方差矩陣上的特征值分析可以用一系列的正交坐標(biāo)軸來獲取弄屡。