選自EliteDataScience 機器之心編譯 參與:蔣思源、晏奇
對機器學(xué)習(xí)算法進行分類不是一件容易的事情,總的來看,有如下幾種方式:生成與判別、參數(shù)與非參數(shù)、監(jiān)督與非監(jiān)督等等。 然而,就實踐經(jīng)驗來看,這些都不是實戰(zhàn)過程中最有效的分類算法的方式。因為對于應(yīng)用機器學(xué)習(xí)而言,開發(fā)者一般會在腦海中有一個最終目標(biāo),比如預(yù)測一個結(jié)果或是對你的觀察進行分類。 因此,我們想介紹另一種對算法進行分類的路數(shù),其基于機器學(xué)習(xí)任務(wù)來分類。 沒有免費午餐定理 在機器學(xué)習(xí)中,有個定理被稱為「沒有免費的午餐」。簡而言之,就是說沒有一個算法可以完美解決所有問題,而且這對于監(jiān)督學(xué)習(xí)(即對預(yù)測的建模)而言尤其如此。 舉個例子,你不能說神經(jīng)網(wǎng)絡(luò)就一定任何時候都比決策樹優(yōu)秀,反過來也是。這其中存在很多影響因素,比如你數(shù)據(jù)集的規(guī)模和結(jié)構(gòu)。 所以,當(dāng)你使用一個固定的數(shù)據(jù)測試集來評估性能,挑選最適合算法時,你應(yīng)該針對你的問題嘗試多種不同的算法。 當(dāng)然,你所使用的算法必須要適合于你試圖解決的問題,這也就有了如何選擇正確的機器學(xué)習(xí)任務(wù)這一問題。做個類比,如果你需要打掃你的房子,你可能會用吸塵器、掃帚或者是拖把,但是你絕不會掏出一把鏟子然后開始挖地。 機器學(xué)習(xí)任務(wù) 在本次梳理中,我們將涵蓋目前「三大」最常見機器學(xué)習(xí)任務(wù):
說明:
1、回歸方法 回歸方法是一種對數(shù)值型連續(xù)隨機變量進行預(yù)測和建模的監(jiān)督學(xué)習(xí)算法。使用案例一般包括房價預(yù)測、股票走勢或測試成績等連續(xù)變化的案例。 回歸任務(wù)的特點是標(biāo)注的數(shù)據(jù)集具有數(shù)值型的目標(biāo)變量。也就是說,每一個觀察樣本都有一個數(shù)值型的標(biāo)注真值以監(jiān)督算法。 1.1 線性回歸(正則化) 線性回歸是處理回歸任務(wù)最常用的算法之一。該算法的形式十分簡單,它期望使用一個超平面擬合數(shù)據(jù)集(只有兩個變量的時候就是一條直線)。如果數(shù)據(jù)集中的變量存在線性關(guān)系,那么其就能擬合地非常好。 在實踐中,簡單的線性回歸通常被使用正則化的回歸方法(LASSO、Ridge 和 Elastic-Net)所代替。正則化其實就是一種對過多回歸系數(shù)采取懲罰以減少過擬合風(fēng)險的技術(shù)。當(dāng)然,我們還得確定懲罰強度以讓模型在欠擬合和過擬合之間達(dá)到平衡。
1.2 回歸樹(集成方法) 回歸樹(決策樹的一種)通過將數(shù)據(jù)集重復(fù)分割為不同的分支而實現(xiàn)分層學(xué)習(xí),分割的標(biāo)準(zhǔn)是最大化每一次分離的信息增益。這種分支結(jié)構(gòu)讓回歸樹很自然地學(xué)習(xí)到非線性關(guān)系。 集成方法,如隨機森林(RF)或梯度提升樹(GBM)則組合了許多獨立訓(xùn)練的樹。這種算法的主要思想就是組合多個弱學(xué)習(xí)算法而成為一種強學(xué)習(xí)算法,不過這里并不會具體地展開。在實踐中 RF 通常很容易有出色的表現(xiàn),而 GBM 則更難調(diào)參,不過通常梯度提升樹具有更高的性能上限。
1.3 深度學(xué)習(xí) 深度學(xué)習(xí)是指能學(xué)習(xí)極其復(fù)雜模式的多層神經(jīng)網(wǎng)絡(luò)。該算法使用在輸入層和輸出層之間的隱藏層對數(shù)據(jù)的中間表征建模,這也是其他算法很難學(xué)到的部分。 深度學(xué)習(xí)還有其他幾個重要的機制,如卷積和 drop-out 等,這些機制令該算法能有效地學(xué)習(xí)到高維數(shù)據(jù)。然而深度學(xué)習(xí)相對于其他算法需要更多的數(shù)據(jù),因為其有更大數(shù)量級的參數(shù)需要估計。
1.4 最近鄰算法 最近鄰算法是「基于實例的」,這就意味著其需要保留每一個訓(xùn)練樣本觀察值。最近鄰算法通過搜尋最相似的訓(xùn)練樣本來預(yù)測新觀察樣本的值。 而這種算法是內(nèi)存密集型,對高維數(shù)據(jù)的處理效果并不是很好,并且還需要高效的距離函數(shù)來度量和計算相似度。在實踐中,基本上使用正則化的回歸或樹型集成方法是最好的選擇。 2、分類方法 分類方法是一種對離散型隨機變量建模或預(yù)測的監(jiān)督學(xué)習(xí)算法。使用案例包括郵件過濾、金融欺詐和預(yù)測雇員異動等輸出為類別的任務(wù)。 許多回歸算法都有與其相對應(yīng)的分類算法,分類算法通常適用于預(yù)測一個類別(或類別的概率)而不是連續(xù)的數(shù)值。 2.1 Logistic 回歸(正則化) Logistic 回歸是與線性回歸相對應(yīng)的一種分類方法,且該算法的基本概念由線性回歸推導(dǎo)而出。Logistic 回歸通過 Logistic 函數(shù)(即 Sigmoid 函數(shù))將預(yù)測映射到 0 到 1 中間,因此預(yù)測值就可以看成某個類別的概率。 該模型仍然還是「線性」的,所以只有在數(shù)據(jù)是線性可分(即數(shù)據(jù)可被一個超平面完全分離)時,算法才能有優(yōu)秀的表現(xiàn)。同樣 Logistic 模型能懲罰模型系數(shù)而進行正則化。
2.2 分類樹(集成方法) 與回歸樹相對應(yīng)的分類算法是分類樹。它們通常都是指決策樹,或更嚴(yán)謹(jǐn)一點地稱之為「分類回歸樹(CART)」,這也就是非常著名的 CART 的算法。 簡單的隨機森林
2.3 深度學(xué)習(xí) 深度學(xué)習(xí)同樣很容易適應(yīng)于分類問題。實際上,深度學(xué)習(xí)應(yīng)用地更多的是分類任務(wù),如圖像分類等。
2.4 支持向量機 支持向量機(SVM)可以使用一個稱之為核函數(shù)的技巧擴展到非線性分類問題,而該算法本質(zhì)上就是計算兩個稱之為支持向量的觀測數(shù)據(jù)之間的距離。SVM 算法尋找的決策邊界即最大化其與樣本間隔的邊界,因此支持向量機又稱為大間距分類器。 支持向量機中的核函數(shù)采用非線性變換,將非線性問題變換為線性問題 例如,SVM 使用線性核函數(shù)就能得到類似于 logistic 回歸的結(jié)果,只不過支持向量機因為最大化了間隔而更具魯棒性。因此,在實踐中,SVM 最大的優(yōu)點就是可以使用非線性核函數(shù)對非線性決策邊界建模。
2.5 樸素貝葉斯 樸素貝葉斯(NB)是一種基于貝葉斯定理和特征條件獨立假設(shè)的分類方法。本質(zhì)上樸素貝葉斯模型就是一個概率表,其通過訓(xùn)練數(shù)據(jù)更新這張表中的概率。為了預(yù)測一個新的觀察值,樸素貝葉斯算法就是根據(jù)樣本的特征值在概率表中尋找最大概率的那個類別。 之所以稱之為「樸素」,是因為該算法的核心就是特征條件獨立性假設(shè)(每一個特征之間相互獨立),而這一假設(shè)在現(xiàn)實世界中基本是不現(xiàn)實的。
3、聚類 聚類是一種無監(jiān)督學(xué)習(xí)任務(wù),該算法基于數(shù)據(jù)的內(nèi)部結(jié)構(gòu)尋找觀察樣本的自然族群(即集群)。使用案例包括細(xì)分客戶、新聞聚類、文章推薦等。 因為聚類是一種無監(jiān)督學(xué)習(xí)(即數(shù)據(jù)沒有標(biāo)注),并且通常使用數(shù)據(jù)可視化評價結(jié)果。如果存在「正確的回答」(即在訓(xùn)練集中存在預(yù)標(biāo)注的集群),那么分類算法可能更加合適。 3.1 K 均值聚類 K 均值聚類是一種通用目的的算法,聚類的度量基于樣本點之間的幾何距離(即在坐標(biāo)平面中的距離)。集群是圍繞在聚類中心的族群,而集群呈現(xiàn)出類球狀并具有相似的大小。聚類算法是我們推薦給初學(xué)者的算法,因為該算法不僅十分簡單,而且還足夠靈活以面對大多數(shù)問題都能給出合理的結(jié)果。
3.2 Affinity Propagation 聚類 AP 聚類算法是一種相對較新的聚類算法,該聚類算法基于兩個樣本點之間的圖形距離(graph distances)確定集群。采用該聚類方法的集群擁有更小和不相等的大小。
3.3 層次聚類(Hierarchical / Agglomerative) 層次聚類是一系列基于以下概念的聚類算法:
3.4 DBSCAN DBSCAN 是一個基于密度的算法,它將樣本點的密集區(qū)域組成一個集群。最近還有一項被稱為 HDBSCAN 的新進展,它允許改變密度集群。
結(jié)語 本文從回歸問題、分類問題和聚類問題三個角度下初步了解了各個算法的優(yōu)缺點,也基本了解了那些算法到底是什么。但以上每一個算法都有更多的概念和細(xì)節(jié)沒有展現(xiàn)出來,我們不能知道它們的損失函數(shù)是什么、訓(xùn)練目標(biāo)是什么、權(quán)重更新策略是什么等等一些列問題。因此我們希望能從機器之心歷來文章中搜尋一些,為有興趣的讀者提供這些算法的具體細(xì)節(jié)。 線性回歸: 決策樹(集成方法): 支持向量機: 深度學(xué)習(xí): 聚類算法: 最后,不論是基本概念還是具體算法,最重要的就是實踐。不實踐這些算法就永遠(yuǎn)不能發(fā)現(xiàn)哪些地方?jīng)]有掌握,因此希望本文能有助于各位讀者實踐自己的算法。 原文地址:https:///machine-learning-algorithms#regression 讀者福利:即日起至 GMIS 2017 大會前一天,讀者在頭條文章下留言,機器之心會在次日選出最專業(yè)或最有見解的一條評論贈送 GMIS 2017 雙日票一張! |
|
來自: taotao_2016 > 《計算機》