《Scikit-Learn與TensorFlow機(jī)器學(xué)習(xí)實(shí)用指南》第8章 降維

來源:ApacheCN《Sklearn 與 TensorFlow 機(jī)器學(xué)習(xí)實(shí)用指南》翻譯項目
譯者:@loveSnowBest
校對:@飛龍
很多機(jī)器學(xué)習(xí)的問題都會涉及到有著幾千甚至數(shù)百萬維的特征的訓(xùn)練實(shí)例。這不僅讓訓(xùn)練過程變得非常緩慢,同時還很難找到一個很好的解,我們接下來就會遇到這種情況。這種問題通常被稱為維數(shù)災(zāi)難(curse of dimentionality)。
幸運(yùn)的是,在現(xiàn)實(shí)生活中我們經(jīng)??梢詷O大的降低特征維度,將一個十分棘手的問題轉(zhuǎn)變成一個可以較為容易解決的問題。例如,對于 MNIST 圖片集(第 3 章中提到):圖片四周邊緣部分的像素幾乎總是白的,因此你完全可以將這些像素從你的訓(xùn)練集中扔掉而不會丟失太多信息。圖 7-6 向我們證實(shí)了這些像素的確對我們的分類任務(wù)是完全不重要的。同時,兩個相鄰的像素往往是高度相關(guān)的:如果你想要將他們合并成一個像素(比如取這兩個像素點(diǎn)的平均值)你并不會丟失很多信息。
警告:降維肯定會丟失一些信息(這就好比將一個圖片壓縮成 JPEG 的格式會降低圖像的質(zhì)量),因此即使這種方法可以加快訓(xùn)練的速度,同時也會讓你的系統(tǒng)表現(xiàn)的稍微差一點(diǎn)。降維會讓你的工作流水線更復(fù)雜因而更難維護(hù)。所有你應(yīng)該先嘗試使用原始的數(shù)據(jù)來訓(xùn)練,如果訓(xùn)練速度太慢的話再考慮使用降維。在某些情況下,降低訓(xùn)練集數(shù)據(jù)的維度可能會篩選掉一些噪音和不必要的細(xì)節(jié),這可能會讓你的結(jié)果比降維之前更好(這種情況通常不會發(fā)生;它只會加快你訓(xùn)練的速度)。
降維除了可以加快訓(xùn)練速度外,在數(shù)據(jù)可視化方面(或者 DataViz)也十分有用。降低特征維度到 2(或者 3)維從而可以在圖中畫出一個高維度的訓(xùn)練集,讓我們可以通過視覺直觀的發(fā)現(xiàn)一些非常重要的信息,比如聚類。
在這一章里,我們將會討論維數(shù)災(zāi)難問題并且了解在高維空間的數(shù)據(jù)。然后,我們將會展示兩種主要的降維方法:投影(projection)和流形學(xué)習(xí)(Manifold Learning),同時我們還會介紹三種流行的降維技術(shù):主成分分析(PCA),核主成分分析(Kernel PCA)和局部線性嵌入(LLE)。
閱讀全文:http://t.cn/RuisJy0