按照上篇文章的說的济丘,我們和小冰聊天的過程惭载,對她來說就相當(dāng)于很多次的“輸入-處理-輸出”敢订。從機(jī)器學(xué)習(xí)的視角上來看,小冰在學(xué)習(xí)怎么跟我們說話的時候(被開發(fā)階段)厅缺,應(yīng)該主要采用了監(jiān)督學(xué)習(xí)蔬顾。
監(jiān)督學(xué)習(xí)(supervised learning),主要解決兩類問題:回歸湘捎、分類诀豁,分別對應(yīng)著定量輸出和定性輸出。
什么叫回歸(regression)呢窥妇?簡單地說舷胜,就是由已知數(shù)據(jù)通過計算得到一個明確的值(value),像y=f(x)就是典型的回歸關(guān)系活翩。說的很多的線性回歸(Linear Regression)就是根據(jù)已有的數(shù)據(jù)返回一個線性模型烹骨,大家初高中學(xué)了那么久的y=ax+b就是一種線性回歸模型。
光說理論意義不大材泄,比如和小冰聊天的過程沮焕,她根據(jù)你說的話返回一個字符串(一句話),她返回這句話的過程其實就是一個回歸的過程拉宗。
什么叫分類(classify)峦树?由已知數(shù)據(jù)(已標(biāo)注的)通過計算得到一個類別辣辫。比如現(xiàn)在知道小曹182cm,平均每厘米質(zhì)量為1kg魁巩,通過計算得到重量為182kg急灭,這個過程叫回歸。根據(jù)計算結(jié)果我們得出一個結(jié)論歪赢,小曹是個胖紙化戳,這個過程就屬于分類。這里要特別注意埋凯,監(jiān)督學(xué)習(xí)常用的“邏輯回歸(Logistic Regression)”屬于典型的分類方法点楼,而不是回歸。
接下來一起了解幾個監(jiān)督學(xué)習(xí)中主要的算法模型:
? ? ? K—近鄰算法(k-Nearest Neighbor)
????? 決策樹(Decision Tree)
????? 樸素貝葉斯(Naive Bayes)
近鄰算法聽起來很高大上白对,但其實思想很簡單掠廓。讓我們先來建立一個模型
K-近鄰算法里的K,是人為設(shè)定的一個值甩恼,圖中的K就是3蟀瞧,那么被框住的三個同學(xué)就都算小曹的“鄰居”。有句老話說得好啊条摸,人以類聚悦污,物以群分,小曹的體重肯定和周圍的人差不多钉蒲,我們就取三個人的平均值110kg作為小曹的體重切端,不是鄰居的同學(xué)們就不考慮了。這是近鄰算法的回歸模型顷啼。
好了踏枣,如果是近鄰算法的分類模型呢?應(yīng)該不用我說了吧钙蒙,小曹的三個鄰居都胖茵瀑,所以小曹也肯定胖。
這就是K-近鄰算法的核心思想躬厌,由K確定“近鄰”的范圍马昨,由近鄰的數(shù)值和屬性得出特定未知變量的數(shù)值和屬性。
當(dāng)然了扛施,這個模型是簡化之后的偏陪,在實際處理的時候,數(shù)據(jù)的分布都是經(jīng)過了處理按一定規(guī)則在某個特征空間規(guī)律分布的(不是我這樣亂畫的)煮嫌,只有這樣“近鄰”才有意義笛谦。特別的,當(dāng)K值過大的是時候會欠擬合(underfitting)昌阿,K值過小的時候會過擬合(overfitting)饥脑。欠擬合和過擬合在后文解釋恳邀,想深入了解算法可以在文末查看參考資料。
決策樹灶轰,就是N個“if”和“then”搭配組成的集合谣沸,通過多次決策返回某一特征/類別,以結(jié)果的高純度為目標(biāo)笋颤。決策樹只要了解幾個名詞(熵乳附、信息增益、信息增益率)伴澄,一個模型(特征選擇赋除、生成決策樹、剪枝)和三個算法(ID3非凌、C4.5举农、CART)。
熵的概念大家高中物理課都學(xué)過敞嗡,它的大小代表了一個系統(tǒng)的混亂程度颁糟。決策樹系統(tǒng)內(nèi)的熵表示每一條分支結(jié)果的純度,決策樹可以說是一個分類的過程喉悴,每一類的特征越明顯棱貌,每一個類別內(nèi)的數(shù)據(jù)越相似,熵就越小箕肃,純度就越高键畴。
信息增益(用于ID3)是針對節(jié)點設(shè)定的,節(jié)點就是某個屬性的分類器突雪,經(jīng)過這個節(jié)點分類后,決策樹的熵越小涡贱,說明這個節(jié)點的信息增益越大咏删。很好理解,我們選擇節(jié)點肯定要選擇能讓系統(tǒng)純度更高的那個问词。但是問題來了督函,按照這個規(guī)則選取節(jié)點的話,總會偏向數(shù)量較多的那部分?jǐn)?shù)據(jù)激挪。
所以專家們又提出了信息增益比(用于C4.5)辰狡,用熵減的比率來判斷節(jié)點的屬性,在一定程度上校正了偏向數(shù)量較多的問題垄分。
該說人話了宛篇,下面舉個栗子來說明一下上述三個名詞。
假設(shè)我們要通過一個模型來判斷一個人是不是RICH薄湿。
這就是一個簡單的二分決策樹模型叫倍,二分就是指一個節(jié)點(判斷的圈圈)只分出兩個類別偷卧,判斷yes or not。
熵就是說我們判斷出來的結(jié)果準(zhǔn)不準(zhǔn)確吆倦,從這個模型來看听诸,熵肯定是很大的,因為有很多因素沒有加入進(jìn)來考慮蚕泽,比如他是不是有過去的存款晌梨,家庭是不是有遺產(chǎn)等等。如果在某個分類下窮人里混進(jìn)了很多有錢人须妻,就說明它的熵大仔蝌。GINI系數(shù)用于CART(Classification And Regression Tree),和熵的意義相似。
信息增益簡單地說璧南,就是某一個屬性的判斷掌逛,能把多少人分開。比如說如果設(shè)定判斷的屬性為月可支配收入>3000能讓分類到RICH的窮人最少司倚,我們就說它是一個信息增益很大的節(jié)點豆混。
原本一個RICH圈圈里有100個窮人,占圈圈里總?cè)藬?shù)的1%动知,我們認(rèn)為分出這個圈圈節(jié)點的信息增益很高皿伺。這個情況下使用信息增益和信息增益比的效果是差不多的。但如果現(xiàn)在我們不止采用二分法盒粮,ID3(用信息增益)算法很可能選擇“身份證號”作為判斷節(jié)點鸵鸥,這樣分類出來的每一個小圈圈的熵都將極高(因為一個圈圈只有一個人),但這樣的分類是沒有意義的(過擬合)丹皱。優(yōu)化后的C4.5算法(采用信息增益比)就是為了防止這種情況發(fā)生妒穴,在原來的信息增益基礎(chǔ)上除以熵,能夠“懲罰”上面發(fā)生的情況摊崭,讓節(jié)點的選取更加合理讼油。
到這里我們已經(jīng)搞清楚了三個名詞、兩個算法(ID3呢簸、C4.5)和一個模型里的兩步(特征選擇和生成決策樹)了矮台。還剩下剪枝和CART算法。
前面的ID3和C4.5都可以對決策樹進(jìn)行多分根时,但是CART只能進(jìn)行二分決策樹的生成瘦赫,它可以創(chuàng)建分類樹(得到一個類別)和回歸樹(得到一個值)。
CART算法采用GINI指數(shù)來進(jìn)行特征選擇(也就是節(jié)點判斷屬性的確認(rèn))蛤迎,GINI指數(shù)是度量數(shù)據(jù)劃分的不純度确虱,是介于0~1之間的數(shù)。GINI值越小替裆,表明樣本集合的純凈度越高蝉娜,GINI值越大表明樣本集合的類別越雜亂唱较。(和熵相似)
看上面的RICH判斷圖,這也可以是CART算法的生成模式召川。
當(dāng)我們判斷的最終結(jié)果不止兩個的時候南缓,可能這棵樹就會變得很龐大(節(jié)點和圈圈都很多),這個時候就需要“剪枝”——去掉多余的節(jié)點荧呐。
剪枝方法有兩種汉形,預(yù)剪枝和后剪枝。預(yù)剪枝即在決策樹生成前通過一定規(guī)則避免某些節(jié)點的生成倍阐,后剪枝則是在決策樹生成之后進(jìn)行剪枝概疆。
預(yù)剪枝的好處就是省事,但是因為事先確定的規(guī)則可能沒有考慮到一些特定且重要的情況下的數(shù)據(jù)峰搪,有可能導(dǎo)致欠擬合岔冀。
后剪枝能夠讓決策樹擁有更好的擬合度,但是相對耗費的時間也更多概耻,過程更復(fù)雜使套。
再提一下“隨機(jī)森林(Random Forest)”。我們知道鞠柄,三個臭皮匠侦高,頂個諸葛亮。有時候一顆決策樹不能對數(shù)據(jù)做出最準(zhǔn)確的分類厌杜,這個時候我們通過一定的規(guī)則生成很多顆決策樹奉呛,讓所有的決策樹處理同一組數(shù)據(jù),經(jīng)過處理之后這樣往往能得到更精確的結(jié)果夯尽。人多力量大瞧壮,不外如是。
樸素貝葉斯中的“樸素”匙握,表示所有特征變量間相互獨立咆槽,不會影響彼此。主要思想就是肺孤,如果有一個需要分類的數(shù)據(jù),它有一些特征济欢,我們看看這些特征最多地出現(xiàn)在哪些類別中赠堵,哪個類別相應(yīng)特征出現(xiàn)得最多,就把它放到哪個類別里法褥∶0龋基本原理還是來自貝葉斯定理。
這樣看感覺這個方法賊簡單半等,其實真的很簡單揍愁。(雖然看了我不知道多久才看懂)呐萨。
比如說我們要判斷一個長得像膠囊(特征1),通體黃色(特征2)莽囤,穿著背帶褲(特征3)谬擦,有點智障(特征4)的東西屬于什么類別(這些特征之間沒有聯(lián)系),我們經(jīng)過遍歷(把所有類別和類別包含的所有特征看一遍)朽缎,發(fā)現(xiàn)小黃人(某個類別)出現(xiàn)這些特征的頻率很高惨远,那我們得出一個結(jié)論,他們是小黃人话肖。
但是樸素貝葉斯方法對特征的劃分很敏感北秽,比如說如果我們沒有“長得像膠囊”這一項特征,那它就可能是很多東西了...
最后讓我們來用兩張圖解釋一下過擬合和欠擬合最筒。
轉(zhuǎn)載請聯(lián)系作者
圖片來源:自制贺氓、GOOGLE、知乎
參考文獻(xiàn):
https://www.cnblogs.com/ybjourney/p/4702562.html
????????????? KNN算法
https://zhuanlan.zhihu.com/p/25994179
????????????? KNN算法
https://zhuanlan.zhihu.com/p/26029567
????????????? 接上一篇床蜘,拓展了一些
https://www.cnblogs.com/Peyton-Li/p/7717377.html
? ? ? ? ? ? ? 比較硬的決策樹和相應(yīng)算法介紹??
https://blog.csdn.net/xbinworld/article/details/44660339
????????????? 決策樹Decision Tree原理與實現(xiàn)技巧
https://blog.csdn.net/fanbotao1209/article/details/44776039
????????????? C4.5 (信息增益率的含義講的很清楚辙培,算法實現(xiàn)也較詳細(xì))
https://blog.csdn.net/bitcarmanlee/article/details/51488204
????????????? 信息熵 條件熵 信息增益 信息增益比 GINI系數(shù)
https://blog.csdn.net/olenet/article/details/46433297
????????????? 我們?yōu)槭裁葱枰畔⒃鲆姹龋皇切畔⒃鲆妫?/p>
http://www.reibang.com/p/268c4095dbdc
????????????? 信息增益與信息增益比(比較簡單)
https://blog.csdn.net/u010089444/article/details/53241218
????????????? 把CART算法說的很明白
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
????????????? 維基百科-樸素貝葉斯分類器
https://www.zhihu.com/question/19960417/answer/347544764
????????????? 請用簡單易懂的語言描述樸素貝葉斯分類器悄泥? - 短發(fā)元氣girl的回答 - 知乎虏冻,很走心的筆記...
http://mindhacks.cn/2008/09/21/the-magical-bayesian-method/
????????????? 數(shù)學(xué)之美番外篇-平凡而又神奇的貝葉斯方法,很長弹囚,值得一讀