從監(jiān)督學(xué)習(xí)說(shuō)起:算法模型有哪幾種?
監(jiān)督學(xué)習(xí)(supervised learning),主要解決兩類問(wèn)題:回歸、分類,分別對(duì)應(yīng)著定量輸出和定性輸出。那監(jiān)督學(xué)習(xí)中主要的算法模型有哪幾種?
我們和小冰聊天的過(guò)程,對(duì)她來(lái)說(shuō)就相當(dāng)于很多次的“輸入-處理-輸出”。從機(jī)器學(xué)習(xí)的視角上來(lái)看,小冰在學(xué)習(xí)怎么跟我們說(shuō)話的時(shí)候(被開(kāi)發(fā)階段),應(yīng)該主要采用了監(jiān)督學(xué)習(xí)。
監(jiān)督學(xué)習(xí)(supervised learning),主要解決兩類問(wèn)題:回歸、分類,分別對(duì)應(yīng)著定量輸出和定性輸出。
什么叫回歸(regression)呢?
簡(jiǎn)單地說(shuō),就是由已知數(shù)據(jù)通過(guò)計(jì)算得到一個(gè)明確的值(value),像y=f(x)就是典型的回歸關(guān)系。說(shuō)的很多的線性回歸(Linear Regression)就是根據(jù)已有的數(shù)據(jù)返回一個(gè)線性模型,大家初高中學(xué)了那么久的y=ax+b就是一種線性回歸模型。
光說(shuō)理論意義不大,比如:和小冰聊天的過(guò)程,她根據(jù)你說(shuō)的話返回一個(gè)字符串(一句話),她返回這句話的過(guò)程其實(shí)就是一個(gè)回歸的過(guò)程。
什么叫分類(classify)?
由已知數(shù)據(jù)(已標(biāo)注的)通過(guò)計(jì)算得到一個(gè)類別。比如:現(xiàn)在知道小曹182cm,平均每厘米質(zhì)量為1kg,通過(guò)計(jì)算得到重量為182kg,這個(gè)過(guò)程叫回歸。根據(jù)計(jì)算結(jié)果我們得出一個(gè)結(jié)論,小曹是個(gè)胖紙,這個(gè)過(guò)程就屬于分類。
這里要特別注意:監(jiān)督學(xué)習(xí)常用的“邏輯回歸(Logistic Regression)”屬于典型的分類方法,而不是回歸。
算法模型
接下來(lái)一起了解幾個(gè)監(jiān)督學(xué)習(xí)中主要的算法模型:
- K—近鄰算法(k-Nearest Neighbor)
- 決策樹(shù)(Decision Tree)
- 樸素貝葉斯(Naive Bayes)
1. 近鄰算法
近鄰算法聽(tīng)起來(lái)很高大上,但其實(shí)思想很簡(jiǎn)單,讓我們先來(lái)建立一個(gè)模型。
K-近鄰算法里的K,是人為設(shè)定的一個(gè)值,圖中的K就是3,那么被框住的三個(gè)同學(xué)就都算小曹的“鄰居”。有句老話說(shuō)得好啊,人以類聚,物以群分,小曹的體重肯定和周圍的人差不多,我們就取三個(gè)人的平均值110kg作為小曹的體重,不是鄰居的同學(xué)們就不考慮了。這是近鄰算法的回歸模型。
好了,如果是近鄰算法的分類模型呢?
應(yīng)該不用我說(shuō)了吧,小曹的三個(gè)鄰居都胖,所以小曹也肯定胖。
這就是K-近鄰算法的核心思想,由K確定“近鄰”的范圍,由近鄰的數(shù)值和屬性得出特定未知變量的數(shù)值和屬性。
當(dāng)然了,這個(gè)模型是簡(jiǎn)化之后的,在實(shí)際處理的時(shí)候,數(shù)據(jù)的分布都是經(jīng)過(guò)了處理,按一定規(guī)則在某個(gè)特征空間規(guī)律分布的(不是我這樣亂畫(huà)的),只有這樣“近鄰”才有意義。
特別的,當(dāng)K值過(guò)大的是時(shí)候會(huì)欠擬合(underfitting),K值過(guò)小的時(shí)候會(huì)過(guò)擬合(overfitting)。欠擬合和過(guò)擬合在后文解釋,想深入了解算法可以在文末查看參考資料。
2. 決策樹(shù)
決策樹(shù),就是N個(gè)“if”和“then”搭配組成的集合,通過(guò)多次決策返回某一特征/類別,以結(jié)果的高純度為目標(biāo)。決策樹(shù)只要了解幾個(gè)名詞(熵、信息增益、信息增益率),一個(gè)模型(特征選擇、生成決策樹(shù)、剪枝)和三個(gè)算法(ID3、C4.5、CART)。
熵的概念大家高中物理課都學(xué)過(guò),它的大小代表了一個(gè)系統(tǒng)的混亂程度。決策樹(shù)系統(tǒng)內(nèi)的熵表示每一條分支結(jié)果的純度,決策樹(shù)可以說(shuō)是一個(gè)分類的過(guò)程,每一類的特征越明顯,每一個(gè)類別內(nèi)的數(shù)據(jù)越相似,熵就越小,純度就越高。
信息增益(用于ID3)是針對(duì)節(jié)點(diǎn)設(shè)定的,節(jié)點(diǎn)就是某個(gè)屬性的分類器,經(jīng)過(guò)這個(gè)節(jié)點(diǎn)分類后,決策樹(shù)的熵越小,說(shuō)明這個(gè)節(jié)點(diǎn)的信息增益越大。很好理解,我們選擇節(jié)點(diǎn)肯定要選擇能讓系統(tǒng)純度更高的那個(gè)。但是問(wèn)題來(lái)了,按照這個(gè)規(guī)則選取節(jié)點(diǎn)的話,總會(huì)偏向數(shù)量較多的那部分?jǐn)?shù)據(jù)。
所以專家們又提出了信息增益比(用于C4.5),用熵減的比率來(lái)判斷節(jié)點(diǎn)的屬性,在一定程度上校正了偏向數(shù)量較多的問(wèn)題。
該說(shuō)人話了,下面舉個(gè)栗子來(lái)說(shuō)明一下上述三個(gè)名詞。
假設(shè)我們要通過(guò)一個(gè)模型來(lái)判斷一個(gè)人是不是RICH。
這就是一個(gè)簡(jiǎn)單的二分決策樹(shù)模型,二分就是指一個(gè)節(jié)點(diǎn)(判斷的圈圈)只分出兩個(gè)類別,判斷yes or not。
熵就是我們判斷出來(lái)的結(jié)果準(zhǔn)不準(zhǔn)確,從這個(gè)模型來(lái)看,熵肯定是很大的,因?yàn)橛泻芏嘁蛩貨](méi)有加入進(jìn)來(lái)考慮,比如:他是不是有過(guò)去的存款,家庭是不是有遺產(chǎn)等等。如果在某個(gè)分類下窮人里混進(jìn)了很多有錢(qián)人,就說(shuō)明它的熵大?;嵯禂?shù)用于CART(Classification And Regression Tree),和熵的意義相似。
信息增益簡(jiǎn)單地說(shuō),就是某一個(gè)屬性的判斷,能把多少人分開(kāi)。比如說(shuō):如果設(shè)定判斷的屬性為月可支配收入>3000能讓分類到RICH的窮人最少,我們就說(shuō)它是一個(gè)信息增益很大的節(jié)點(diǎn)。
原本一個(gè)RICH圈圈里有100個(gè)窮人,占圈圈里總?cè)藬?shù)的1%,我們認(rèn)為分出這個(gè)圈圈節(jié)點(diǎn)的信息增益很高。這個(gè)情況下,使用信息增益和信息增益比的效果,是差不多的。
但如果現(xiàn)在我們不止采用二分法,ID3(用信息增益)算法很可能選擇“身份證號(hào)”作為判斷節(jié)點(diǎn),這樣分類出來(lái)的每一個(gè)小圈圈的熵都將極高(因?yàn)橐粋€(gè)圈圈只有一個(gè)人),但這樣的分類是沒(méi)有意義的(過(guò)擬合)。
優(yōu)化后的C4.5算法(采用信息增益比)就是為了防止這種情況發(fā)生,在原來(lái)的信息增益基礎(chǔ)上除以熵,能夠“懲罰”上面發(fā)生的情況,讓節(jié)點(diǎn)的選取更加合理。
到這里我們已經(jīng)搞清楚了三個(gè)名詞、兩個(gè)算法(ID3、C4.5)和一個(gè)模型里的兩步(特征選擇和生成決策樹(shù))了。還剩下剪枝和CART算法。
前面的ID3和C4.5都可以對(duì)決策樹(shù)進(jìn)行多分,但是CART只能進(jìn)行二分決策樹(shù)的生成,它可以創(chuàng)建分類樹(shù)(得到一個(gè)類別)和回歸樹(shù)(得到一個(gè)值)。
CART算法采用GINI指數(shù)來(lái)進(jìn)行特征選擇(也就是節(jié)點(diǎn)判斷屬性的確認(rèn)),GINI指數(shù)是度量數(shù)據(jù)劃分的不純度,是介于0~1之間的數(shù)。GINI值越小,表明樣本集合的純凈度越高,GINI值越大表明樣本集合的類別越雜亂。(和熵相似)
看上面的圖,這也可以是CART算法的生成模式。
當(dāng)我們判斷的最終結(jié)果不止兩個(gè)的時(shí)候,可能這棵樹(shù)就會(huì)變得很龐大(節(jié)點(diǎn)和圈圈都很多),這個(gè)時(shí)候就需要“剪枝”——去掉多余的節(jié)點(diǎn)。
剪枝方法有兩種:預(yù)剪枝和后剪枝。
- 預(yù)剪枝即在決策樹(shù)生成前,通過(guò)一定規(guī)則,避免某些節(jié)點(diǎn)的生成;
- 后剪枝則是在決策樹(shù)生成之后進(jìn)行剪枝。
預(yù)剪枝的好處就是省事,但是因?yàn)槭孪却_定的規(guī)則,可能沒(méi)有考慮到一些特定且重要的情況下的數(shù)據(jù),有可能導(dǎo)致欠擬合。
后剪枝能夠讓決策樹(shù)擁有更好的擬合度,但是相對(duì)耗費(fèi)的時(shí)間也更多,過(guò)程更復(fù)雜。
再提一下“隨機(jī)森林(Random Forest)”。我們知道,三個(gè)臭皮匠,頂個(gè)諸葛亮。有時(shí)候一顆決策樹(shù)不能對(duì)數(shù)據(jù)做出最準(zhǔn)確的分類,這個(gè)時(shí)候我們通過(guò)一定的規(guī)則生成很多顆決策樹(shù),讓所有的決策樹(shù)處理同一組數(shù)據(jù),經(jīng)過(guò)處理之后這樣往往能得到更精確的結(jié)果。人多力量大,不外如是。
3. 樸素貝葉斯
樸素貝葉斯(Naive Bayes)中的“樸素”,表示所有特征變量間相互獨(dú)立,不會(huì)影響彼此。主要思想就是:如果有一個(gè)需要分類的數(shù)據(jù),它有一些特征,我們看看這些特征最多地出現(xiàn)在哪些類別中,哪個(gè)類別相應(yīng)特征出現(xiàn)得最多,就把它放到哪個(gè)類別里。基本原理還是來(lái)自貝葉斯定理。
這樣看起來(lái)感覺(jué)這個(gè)方法賊簡(jiǎn)單,其實(shí)真的很簡(jiǎn)單。(雖然看了我不知道多久才看懂)。
比如說(shuō):我們要判斷一個(gè)長(zhǎng)得像膠囊(特征1),通體黃色(特征2),穿著背帶褲(特征3),有點(diǎn)智障(特征4)的東西屬于什么類別,我們經(jīng)過(guò)遍歷(把所有類別和類別包含的所有特征看一遍),發(fā)現(xiàn)小黃人(某個(gè)類別)出現(xiàn)這些特征的頻率很高,那我們得出一個(gè)結(jié)論,他們是小黃人。
但是樸素貝葉斯方法對(duì)特征的劃分很敏感,比如說(shuō):如果我們沒(méi)有“長(zhǎng)得像膠囊”這一項(xiàng)特征,那它就可能是很多東西了…
最后讓我們來(lái)用兩張圖解釋一下過(guò)擬合和欠擬合。
參考文獻(xiàn):
- KNN算法:https://www.cnblogs.com/ybjourney/p/4702562.html
- KNN算法:https://zhuanlan.zhihu.com/p/25994179;https://zhuanlan.zhihu.com/p/26029567,接上一篇,拓展了一些。
- 比較硬的決策樹(shù)和相應(yīng)算法介紹:https://www.cnblogs.com/Peyton-Li/p/7717377.html
- 決策樹(shù)Decision Tree原理與實(shí)現(xiàn)技巧:https://blog.csdn.net/xbinworld/article/details/44660339
- C4.5 (信息增益率的含義講的很清楚,算法實(shí)現(xiàn)也較詳細(xì)):https://blog.csdn.net/fanbotao1209/article/details/44776039
- 信息熵、條件熵、信息增益、信息增益比、GINI系數(shù):https://blog.csdn.net/bitcarmanlee/article/details/51488204
- 我們?yōu)槭裁葱枰畔⒃鲆姹龋皇切畔⒃鲆??:https://blog.csdn.net/olenet/article/details/46433297
- 信息增益與信息增益比(比較簡(jiǎn)單):https://www.jianshu.com/p/268c4095dbdc
- 把CART算法說(shuō)的很明白:https://blog.csdn.net/u010089444/article/details/53241218
- 維基百科-樸素貝葉斯分類器:https://zh.wikipedia.org/wiki/%E6%9C%B4%E7%B4%A0%E8%B4%9D%E5%8F%B6%E6%96%AF%E5%88%86%E7%B1%BB%E5%99%A8
- 請(qǐng)用簡(jiǎn)單易懂的語(yǔ)言描述樸素貝葉斯分類器? – 短發(fā)元?dú)鈍irl的回答 – 知乎,很走心的筆記…:https://www.zhihu.com/question/19960417/answer/347544764
- 數(shù)學(xué)之美番外篇-平凡而又神奇的貝葉斯方法,很長(zhǎng),值得一讀:http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/
圖片來(lái)源:自制、GOOGLE、知乎
作者:小曹,公眾號(hào):小曹的AI學(xué)習(xí)筆記
本文由 @小曹 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
??