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