當(dāng)特征選擇完成后摊欠,可以直接訓(xùn)練模型了,但是可能由于特征矩陣過大俱箱,導(dǎo)致計算量大国瓮,訓(xùn)練時間長的問題,因此降低特征矩陣維度也是必不可少的狞谱。但不要盲目降維乃摹,當(dāng)你在原數(shù)據(jù)上跑到了一個比較好的結(jié)果,又嫌它太慢的時候才進(jìn)行降維跟衅,不然降了半天白降了孵睬。
常見的降維方法有主成分分析法(PCA)和線性判別分析(LDA),線性判別分析本身也是一個分類模型伶跷。PCA和LDA有很多的相似點肪康,其本質(zhì)是要將原始的樣本映射到維度更低的樣本空間中,但是PCA和LDA的映射目標(biāo)不一樣:PCA是為了讓映射后的樣本具有最大的發(fā)散性撩穿;而LDA是為了讓映射后的樣本有最好的分類性能磷支。所以說PCA是一種無監(jiān)督的降維方法,而LDA是一種有監(jiān)督的降維方法食寡。
主成分分析法(PCA)
Principal Component Analysis(PCA)是最常用的線性降維方法雾狈,它的目標(biāo)是通過某種線性投影,將高維的數(shù)據(jù)映射到低維的空間中表示抵皱,并期望在所投影的維度上數(shù)據(jù)的方差最大善榛,以此使用較少的數(shù)據(jù)維度,同時保留住較多的原數(shù)據(jù)點的特性呻畸。
通俗的理解移盆,如果把所有的點都映射到一起,那么幾乎所有的信息(如點和點之間的距離關(guān)系)都丟失了伤为,而如果映射后方差盡可能的大咒循,那么數(shù)據(jù)點則會分散開來,以此來保留更多的信息绞愚⌒鸬椋可以證明,PCA是丟失原始數(shù)據(jù)信息最少的一種線性降維方式位衩。(實際上就是最接近原始數(shù)據(jù)裆蒸,但是PCA并不試圖去探索數(shù)據(jù)內(nèi)在結(jié)構(gòu))
使用decomposition庫的PCA類選擇特征的代碼如下:
from sklearn.decomposition import PCA
#主成分分析法,返回降維后的數(shù)據(jù)
#參數(shù)n_components為主成分?jǐn)?shù)目
PCA(n_components=2).fit_transform(iris.data)
PCA追求的是在降維之后能夠最大化保持?jǐn)?shù)據(jù)的內(nèi)在信息糖驴,并通過衡量在投影方向上的數(shù)據(jù)方差的大小來衡量該方向的重要性僚祷。但是這樣投影以后對數(shù)據(jù)的區(qū)分作用并不大佛致,反而可能使得數(shù)據(jù)點揉雜在一起無法區(qū)分。這也是PCA存在的最大一個問題辙谜,這導(dǎo)致使用PCA在很多情況下的分類效果并不好俺榆。具體可以看下圖所示,若使用PCA將數(shù)據(jù)點投影至一維空間上時筷弦,PCA會選擇2軸,這使得原本很容易區(qū)分的兩簇點被揉雜在一起變得無法區(qū)分抑诸;而這時若選擇1軸將會得到很好的區(qū)分結(jié)果烂琴。
LDA所追求的目標(biāo)與PCA不同,不是希望保持?jǐn)?shù)據(jù)最多的信息蜕乡,而是希望數(shù)據(jù)在降維后能夠很容易地被區(qū)分開來奸绷。后面會介紹LDA的方法,是另一種常見的線性降維方法层玲。
線性判別分析法(LDA)
Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一種有監(jiān)督的(supervised)線性降維算法号醉。與PCA保持?jǐn)?shù)據(jù)信息不同,LDA是為了使得降維后的數(shù)據(jù)點盡可能地容易被區(qū)分辛块!
假設(shè)原始數(shù)據(jù)表示為X畔派,(m*n矩陣,m是維度润绵,n是sample的數(shù)量)
既然是線性的线椰,那么就是希望找到映射向量a, 使得 a‘X后的數(shù)據(jù)點能夠保持以下兩種性質(zhì):
1尘盼、同類的數(shù)據(jù)點盡可能的接近(within class)
2憨愉、不同類的數(shù)據(jù)點盡可能的分開(between class)
所以呢還是上面PCA用的這張圖,如果圖中兩堆點是兩類的話卿捎,那么我們就希望他們能夠投影到軸1去(PCA結(jié)果為軸2)配紫,這樣在一維空間中也是很容易區(qū)分的。
使用lda庫的LDA類選擇特征的代碼如下:
from sklearn.lda import LDA
#線性判別分析法午阵,返回降維后的數(shù)據(jù)
#參數(shù)n_components為降維后的維數(shù)
LDA(n_components=2).fit_transform(iris.data, iris.target)
參考
簡述多種降維算法
四大機(jī)器學(xué)習(xí)降維算法:PCA躺孝、LDA、LLE底桂、Laplacian Eigenmaps