各種機器學(xué)習(xí)的應(yīng)用場景分別是什么线衫?例如,k近鄰,貝葉斯惑折,決策樹授账,svm,邏輯斯蒂回歸和最大熵模型

關(guān)于這個問題我今天正好看到了這個文章惨驶。講的正是各個算法的優(yōu)劣分析白热,很中肯。

https://zhuanlan.zhihu.com/p/25327755正好14年的時候有人做過一個實驗[1]粗卜,比較在不同數(shù)據(jù)集上(121個)屋确,不同的分類器(179個)的實際效果。

論文題為:Do we Need Hundreds of Classifiers to Solve Real World Classification Problems?

實驗時間有點早续扔,我嘗試著結(jié)合我自己的理解攻臀、一些最近的實驗,來談一談吧纱昧。主要針對分類器(Classifier)刨啸。

沒有最好的分類器,只有最合適的分類器识脆。

隨機森林平均來說最強设联,但也只在9.9%的數(shù)據(jù)集上拿到了第一,優(yōu)點是鮮有短板灼捂。

SVM的平均水平緊隨其后离例,在10.7%的數(shù)據(jù)集上拿到第一。

神經(jīng)網(wǎng)絡(luò)(13.2%)和boosting(~9%)表現(xiàn)不錯纵东。

數(shù)據(jù)維度越高粘招,隨機森林就比AdaBoost強越多,但是整體不及SVM[2]偎球。

數(shù)據(jù)量越大洒扎,神經(jīng)網(wǎng)絡(luò)就越強辑甜。

近鄰 (Nearest Neighbor)

典型的例子是KNN,它的思路就是——對于待判斷的點袍冷,找到離它最近的幾個數(shù)據(jù)點磷醋,根據(jù)它們的類型決定待判斷點的類型。

它的特點是完全跟著數(shù)據(jù)走胡诗,沒有數(shù)學(xué)模型可言邓线。

適用情景:

需要一個特別容易解釋的模型的時候。

比如需要向用戶解釋原因的推薦算法煌恢。

貝葉斯 (Bayesian)

典型的例子是Naive Bayes骇陈,核心思路是根據(jù)條件概率計算待判斷點的類型。

是相對容易理解的一個模型瑰抵,至今依然被垃圾郵件過濾器使用你雌。

適用情景:

需要一個比較容易解釋,而且不同維度之間相關(guān)性較小的模型的時候二汛。

可以高效處理高維數(shù)據(jù)婿崭,雖然結(jié)果可能不盡如人意。

決策樹 (Decision tree)

決策樹的特點是它總是在沿著特征做切分肴颊。隨著層層遞進氓栈,這個劃分會越來越細。

雖然生成的樹不容易給用戶看婿着,但是數(shù)據(jù)分析的時候授瘦,通過觀察樹的上層結(jié)構(gòu),能夠?qū)Ψ诸惼鞯暮诵乃悸酚幸粋€直觀的感受竟宋。

舉個簡單的例子奥务,當(dāng)我們預(yù)測一個孩子的身高的時候,決策樹的第一層可能是這個孩子的性別袜硫。男生走左邊的樹進行進一步預(yù)測氯葬,女生則走右邊的樹。這就說明性別對身高有很強的影響婉陷。

適用情景:

因為它能夠生成清晰的基于特征(feature)選擇不同預(yù)測結(jié)果的樹狀結(jié)構(gòu)帚称,數(shù)據(jù)分析師希望更好的理解手上的數(shù)據(jù)的時候往往可以使用決策樹。

同時它也是相對容易被攻擊的分類器[3]秽澳。這里的攻擊是指人為的改變一些特征闯睹,使得分類器判斷錯誤。常見于垃圾郵件躲避檢測中担神。因為決策樹最終在底層判斷是基于單個條件的楼吃,攻擊者往往只需要改變很少的特征就可以逃過監(jiān)測。

受限于它的簡單性,決策樹更大的用處是作為一些更有用的算法的基石孩锡。

隨機森林 (Random forest)

提到?jīng)Q策樹就不得不提隨機森林酷宵。顧名思義,森林就是很多樹躬窜。

嚴(yán)格來說浇垦,隨機森林其實算是一種集成算法。它首先隨機選取不同的特征(feature)和訓(xùn)練樣本(training sample)荣挨,生成大量的決策樹男韧,然后綜合這些決策樹的結(jié)果來進行最終的分類。

隨機森林在現(xiàn)實分析中被大量使用默垄,它相對于決策樹此虑,在準(zhǔn)確性上有了很大的提升,同時一定程度上改善了決策樹容易被攻擊的特點口锭。

適用情景:

數(shù)據(jù)維度相對低(幾十維)寡壮,同時對準(zhǔn)確性有較高要求時。

因為不需要很多參數(shù)調(diào)整就可以達到不錯的效果讹弯,基本上不知道用什么方法的時候都可以先試一下隨機森林。

SVM (Support vector machine)

SVM的核心思想就是找到不同類別之間的分界面这溅,使得兩類樣本盡量落在面的兩邊组民,而且離分界面盡量遠。

最早的SVM是平面的悲靴,局限很大臭胜。但是利用核函數(shù)(kernel function),我們可以把平面投射(mapping)成曲面癞尚,進而大大提高SVM的適用范圍耸三。

提高之后的SVM同樣被大量使用,在實際分類中展現(xiàn)了很優(yōu)秀的正確率浇揩。

適用情景:

SVM在很多數(shù)據(jù)集上都有優(yōu)秀的表現(xiàn)仪壮。

相對來說,SVM盡量保持與樣本間距離的性質(zhì)導(dǎo)致它抗攻擊的能力更強胳徽。

和隨機森林一樣积锅,這也是一個拿到數(shù)據(jù)就可以先嘗試一下的算法。

邏輯斯蒂回歸 (Logistic regression)

邏輯斯蒂回歸這個名字太詭異了养盗,我就叫它LR吧缚陷,反正討論的是分類器,也沒有別的方法叫LR往核。顧名思義箫爷,它其實是回歸類方法的一個變體。

回歸方法的核心就是為函數(shù)找到最合適的參數(shù),使得函數(shù)的值和樣本的值最接近虎锚。例如線性回歸(Linear regression)就是對于函數(shù)f(x)=ax+b硫痰,找到最合適的a,b。

LR擬合的就不是線性函數(shù)了翁都,它擬合的是一個概率學(xué)中的函數(shù)碍论,f(x)的值這時候就反映了樣本屬于這個類的概率。

適用情景:

LR同樣是很多分類算法的基礎(chǔ)組件柄慰,它的好處是輸出值自然地落在0到1之間鳍悠,并且有概率意義。

因為它本質(zhì)上是一個線性的分類器坐搔,所以處理不好特征之間相關(guān)的情況藏研。

雖然效果一般,卻勝在模型清晰概行,背后的概率學(xué)經(jīng)得住推敲蠢挡。它擬合出來的參數(shù)就代表了每一個特征(feature)對結(jié)果的影響。也是一個理解數(shù)據(jù)的好工具凳忙。

判別分析 (Discriminant analysis)

判別分析主要是統(tǒng)計那邊在用业踏,所以我也不是很熟悉,臨時找統(tǒng)計系的閨蜜補了補課涧卵。這里就現(xiàn)學(xué)現(xiàn)賣了勤家。

判別分析的典型例子是線性判別分析(Linear discriminant analysis),簡稱LDA柳恐。

(這里注意不要和隱含狄利克雷分布(Latent Dirichlet allocation)弄混伐脖,雖然都叫LDA但說的不是一件事。)

LDA的核心思想是把高維的樣本投射(project)到低維上乐设,如果要分成兩類讼庇,就投射到一維。要分三類就投射到二維平面上近尚。這樣的投射當(dāng)然有很多種不同的方式蠕啄,LDA投射的標(biāo)準(zhǔn)就是讓同類的樣本盡量靠近,而不同類的盡量分開戈锻。對于未來要預(yù)測的樣本介汹,用同樣的方式投射之后就可以輕易地分辨類別了。

使用情景:

判別分析適用于高維數(shù)據(jù)需要降維的情況舶沛,自帶降維功能使得我們能方便地觀察樣本分布嘹承。它的正確性有數(shù)學(xué)公式可以證明,所以同樣是很經(jīng)得住推敲的方式如庭。

但是它的分類準(zhǔn)確率往往不是很高叹卷,所以不是統(tǒng)計系的人就把它作為降維工具用吧撼港。

同時注意它是假定樣本成正態(tài)分布的,所以那種同心圓形的數(shù)據(jù)就不要嘗試了骤竹。

神經(jīng)網(wǎng)絡(luò) (Neural network)

神經(jīng)網(wǎng)絡(luò)現(xiàn)在是火得不行啊帝牡。它的核心思路是利用訓(xùn)練樣本(training sample)來逐漸地完善參數(shù)。還是舉個例子預(yù)測身高的例子蒙揣,如果輸入的特征中有一個是性別(1:男靶溜;0:女),而輸出的特征是身高(1:高懒震;0:矮)罩息。那么當(dāng)訓(xùn)練樣本是一個個子高的男生的時候,在神經(jīng)網(wǎng)絡(luò)中个扰,從“男”到“高”的路線就會被強化瓷炮。同理,如果來了一個個子高的女生递宅,那從“女”到“高”的路線就會被強化娘香。

最終神經(jīng)網(wǎng)絡(luò)的哪些路線比較強,就由我們的樣本所決定办龄。

神經(jīng)網(wǎng)絡(luò)的優(yōu)勢在于烘绽,它可以有很多很多層。如果輸入輸出是直接連接的俐填,那它和LR就沒有什么區(qū)別安接。但是通過大量中間層的引入,它就能夠捕捉很多輸入特征之間的關(guān)系玷禽。卷積神經(jīng)網(wǎng)絡(luò)有很經(jīng)典的不同層的可視化展示(visulization),我這里就不贅述了呀打。

神經(jīng)網(wǎng)絡(luò)的提出其實很早了矢赁,但是它的準(zhǔn)確率依賴于龐大的訓(xùn)練集,原本受限于計算機的速度贬丛,分類效果一直不如隨機森林和SVM這種經(jīng)典算法撩银。

使用情景:

數(shù)據(jù)量龐大,參數(shù)之間存在內(nèi)在聯(lián)系的時候豺憔。

當(dāng)然現(xiàn)在神經(jīng)網(wǎng)絡(luò)不只是一個分類器额获,它還可以用來生成數(shù)據(jù),用來做降維恭应,這些就不在這里討論了抄邀。

Rule-based methods

這個我是真不熟,都不知道中文翻譯是什么昼榛。

它里面典型的算法是C5.0 Rules脆烟,一個基于決策樹的變體。因為決策樹畢竟是樹狀結(jié)構(gòu)昔榴,理解上還是有一定難度垒拢。所以它把決策樹的結(jié)果提取出來,形成一個一個兩三個條件組成的小規(guī)則蒋畜。

使用情景:

它的準(zhǔn)確度比決策樹稍低,很少見人用。大概需要提供明確小規(guī)則來解釋決定的時候才會用吧纯趋。

提升算法(Boosting)

接下來講的一系列模型,都屬于集成學(xué)習(xí)算法(Ensemble Learning)冷离,基于一個核心理念:三個臭皮匠吵冒,頂個諸葛亮。

翻譯過來就是:當(dāng)我們把多個較弱的分類器結(jié)合起來的時候酒朵,它的結(jié)果會比一個強的分類器更

典型的例子是AdaBoost桦锄。

AdaBoost的實現(xiàn)是一個漸進的過程,從一個最基礎(chǔ)的分類器開始蔫耽,每次尋找一個最能解決當(dāng)前錯誤樣本的分類器结耀。用加權(quán)取和(weighted sum)的方式把這個新分類器結(jié)合進已有的分類器中。

它的好處是自帶了特征選擇(feature selection)匙铡,只使用在訓(xùn)練集中發(fā)現(xiàn)有效的特征(feature)图甜。這樣就降低了分類時需要計算的特征數(shù)量,也在一定程度上解決了高維數(shù)據(jù)難以理解的問題鳖眼。

最經(jīng)典的AdaBoost實現(xiàn)中黑毅,它的每一個弱分類器其實就是一個決策樹。這就是之前為什么說決策樹是各種算法的基石钦讳。

使用情景:

好的Boosting算法矿瘦,它的準(zhǔn)確性不遜于隨機森林。雖然在[1]的實驗中只有一個擠進前十愿卒,但是實際使用中它還是很強的缚去。因為自帶特征選擇(feature selection)所以對新手很友好,是一個“不知道用什么就試一下它吧”的算法琼开。

裝袋算法(Bagging)

同樣是弱分類器組合的思路易结,相對于Boosting,其實Bagging更好理解柜候。它首先隨機地抽取訓(xùn)練集(training set)搞动,以之為基礎(chǔ)訓(xùn)練多個弱分類器。然后通過取平均渣刷,或者投票(voting)的方式?jīng)Q定最終的分類結(jié)果鹦肿。

因為它隨機選取訓(xùn)練集的特點,Bagging可以一定程度上避免過渡擬合(overfit)辅柴。

在[1]中狮惜,最強的Bagging算法是基于SVM的高诺。如果用定義不那么嚴(yán)格的話,隨機森林也算是Bagging的一種碾篡。

使用情景:

相較于經(jīng)典的必使算法虱而,Bagging使用的人更少一些。一部分的原因是Bagging的效果和參數(shù)的選擇關(guān)系比較大开泽,用默認(rèn)參數(shù)往往沒有很好的效果牡拇。

雖然調(diào)對參數(shù)結(jié)果會比決策樹和LR好,但是模型也變得復(fù)雜了穆律,沒事有特別的原因就別用它了惠呼。

Stacking

這個我是真不知道中文怎么說了。它所做的是在多個分類器的結(jié)果上峦耘,再套一個新的分類器剔蹋。

這個新的分類器就基于弱分類器的分析結(jié)果,加上訓(xùn)練標(biāo)簽(training label)進行訓(xùn)練辅髓。一般這最后一層用的是LR泣崩。

Stacking在[1]里面的表現(xiàn)不好,可能是因為增加的一層分類器引入了更多的參數(shù)洛口,也可能是因為有過渡擬合(overfit)的現(xiàn)象矫付。

使用情景:

沒事就別用了。

(修訂:@莊巖

提醒說stacking在數(shù)據(jù)挖掘競賽的網(wǎng)站kaggle上很火第焰,相信參數(shù)調(diào)得好的話還是對結(jié)果能有幫助的买优。

http://blog.kaggle.com/2016/12/27/a-kagglers-guide-to-model-stacking-in-practice/**

這篇文章很好地介紹了stacking的好處。在kaggle這種一點點提升就意味著名次不同的場合下挺举,stacking還是很有效的杀赢,但是對于一般商用,它所帶來的提升就很難值回額外的復(fù)雜度了湘纵。)

多專家模型(Mixture of Experts)

最近這個模型還挺流行的脂崔,主要是用來合并神經(jīng)網(wǎng)絡(luò)的分類結(jié)果。我也不是很熟瞻佛,對神經(jīng)網(wǎng)絡(luò)感興趣脱篙,而且訓(xùn)練集異質(zhì)性(heterogeneity)比較強的話可以研究一下這個娇钱。

講到這里分類器其實基本說完了伤柄。講一下問題里面其他一些名詞吧。

最大熵模型 (Maximum entropy model)

最大熵模型本身不是分類器文搂,它一般是用來判斷模型預(yù)測結(jié)果的好壞的适刀。

對于它來說,分類器預(yù)測是相當(dāng)于是:針對樣本煤蹭,給每個類一個出現(xiàn)概率笔喉。比如說樣本的特征是:性別男取视。我的分類器可能就給出了下面這樣一個概率:高(60%),矮(40%)常挚。

而如果這個樣本真的是高的作谭,那我們就得了一個分?jǐn)?shù)60%。最大熵模型的目標(biāo)就是讓這些分?jǐn)?shù)的乘積盡量大奄毡。

LR其實就是使用最大熵模型作為優(yōu)化目標(biāo)的一個算法[4]折欠。

EM

就像最大熵模型一樣,EM不是分類器吼过,而是一個思路锐秦。很多算法都是基于這個思路實現(xiàn)的。

@劉奕馳 已經(jīng)講得很清楚了盗忱,我就不多說了酱床。

隱馬爾科夫 (Hidden Markov model)

這是一個基于序列的預(yù)測方法,核心思想就是通過上一個(或幾個)狀態(tài)預(yù)測下一個狀態(tài)趟佃。

之所以叫“隱”馬爾科夫是因為它的設(shè)定是狀態(tài)本身我們是看不到的扇谣,我們只能根據(jù)狀態(tài)生成的結(jié)果序列來學(xué)習(xí)可能的狀態(tài)。

適用場景:

可以用于序列的預(yù)測揖闸,可以用來生成序列揍堕。

條件隨機場 (Conditional random field)

典型的例子是linear-chain CRF。

具體的使用 @Aron 有講汤纸,我就不獻丑了衩茸,因為我從來沒用過這個。

就是這些啦贮泞。

相關(guān)的文章:

[1]: Do we need hundreds of classifiers to solve real world classification problems.

Fernández-Delgado, Manuel, et al. J. Mach. Learn. Res 15.1 (2014)

[2]: An empirical evaluation of supervised learning in high dimensions.

Rich Caruana, Nikos Karampatziakis, and Ainur Yessenalina. ICML '08

[3]: Man vs. Machine: Practical Adversarial Detection of Malicious Crowdsourcing Workers

Wang, G., Wang, T., Zheng, H., & Zhao, B. Y. Usenix Security'14

[4]:http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf**


作者:至極L

鏈接:http://www.reibang.com/p/40b4dc1d23db

來源:簡書

簡書著作權(quán)歸作者所有楞慈,任何形式的轉(zhuǎn)載都請聯(lián)系作者獲得授權(quán)并注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末啃擦,一起剝皮案震驚了整個濱河市囊蓝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌令蛉,老刑警劉巖聚霜,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異珠叔,居然都是意外死亡蝎宇,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門祷安,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姥芥,“玉大人,你說我怎么就攤上這事汇鞭×固疲” “怎么了庸追?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長台囱。 經(jīng)常有香客問我淡溯,道長,這世上最難降的妖魔是什么簿训? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任血筑,我火速辦了婚禮,結(jié)果婚禮上煎楣,老公的妹妹穿的比我還像新娘豺总。我一直安慰自己,他們只是感情好择懂,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布喻喳。 她就那樣靜靜地躺著,像睡著了一般困曙。 火紅的嫁衣襯著肌膚如雪表伦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天慷丽,我揣著相機與錄音蹦哼,去河邊找鬼。 笑死要糊,一個胖子當(dāng)著我的面吹牛纲熏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锄俄,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼局劲,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奶赠?” 一聲冷哼從身側(cè)響起鱼填,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎毅戈,沒想到半個月后苹丸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡苇经,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年赘理,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片塑陵。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡感憾,死狀恐怖蜡励,靈堂內(nèi)的尸體忽然破棺而出令花,到底是詐尸還是另有隱情阻桅,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布兼都,位于F島的核電站嫂沉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扮碧。R本人自食惡果不足惜趟章,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望慎王。 院中可真熱鬧蚓土,春花似錦、人聲如沸赖淤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咱旱。三九已至确丢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吐限,已是汗流浹背鲜侥。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留诸典,地道東北人描函。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像狐粱,于是被迫代替她去往敵國和親赘阀。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容