訓(xùn)練

水果數(shù)據(jù)
| 直徑 | 顏色 | 水果 |
| 4 | Red | Apple |
| 4 | Green | Apple |
| 1 | Red | Cherry |
| 1 | Green | Grape |
| 5 | []Red | Apple |
為了創(chuàng)建樹(shù)的根節(jié)點(diǎn),有兩個(gè)可能的變量可用于對(duì)數(shù)據(jù)進(jìn)行拆分,它們分別是直徑和顏色。第一步就是要對(duì)每個(gè)變量都進(jìn)行嘗試,從中找出拆分?jǐn)?shù)據(jù)效果最好的一個(gè)。按照顏色拆分?jǐn)?shù)據(jù)集得到的結(jié)果如下圖
| Red | Green |
| Apple | Apple |
| Cherry | Grape |
| Apple |
上述數(shù)據(jù)依然顯得非?;靵y。但是,假如我們按直徑(小于4英寸、大于或等于4英寸)進(jìn)行拆分,則拆分得到的結(jié)果會(huì)變得非常清晰(我們將左側(cè)的數(shù)據(jù)成為Subset1,右側(cè)的數(shù)據(jù)成為Subset2).此時(shí)的拆分情況如下圖所示
| 直徑<4英寸 | 直徑≥4英寸 |
| Cherry | Apple |
| Grape | Apple |
這顯然是一種更好的拆分結(jié)果,因?yàn)镾ubset2包含來(lái)自初始集合的所有“Apple”條目。盡管在本例中,哪個(gè)變量的拆分效果更好是明確的;但是當(dāng)面對(duì)規(guī)模更大一些的數(shù)據(jù)集時(shí),就不會(huì)總是有如此清晰的拆分結(jié)果了。為了衡量一個(gè)拆分的優(yōu)劣。引入了一個(gè)熵的概念(代表一個(gè)集合中無(wú)序的程序):集合中的熵偏小,就意味著該集合中的大部分元素都是同質(zhì)的;而熵等于0,則代表集合中的所有元素都是同一類(lèi)型的。在上圖中Subset2(直徑≥4)的熵即為0.每個(gè)集合中的熵都是用來(lái)計(jì)算信息增益的,信息增益定義如下:因此對(duì)于每一種可能的拆分,我們都會(huì)計(jì)算出相應(yīng)的信息增益,并以此來(lái)確定拆分用的變量。一旦用以拆分的變量被選定,第一個(gè)節(jié)點(diǎn)就創(chuàng)建出來(lái)了。 diameter ≥4min ? yes noCherry(1,Red) AppleGrape(1,Green)
因此,我們將判斷條件顯示在了節(jié)點(diǎn)的位置,如果數(shù)據(jù)不滿(mǎn)足判斷條件,就會(huì)沿著no分支向下走,如果滿(mǎn)足,則會(huì)沿著yes分支向下走。因?yàn)閥es分支現(xiàn)在僅有一種可能的結(jié)果,因此它就成了葉節(jié)點(diǎn)。no分支依然顯得有些混亂,因此可以采用與選擇跟節(jié)點(diǎn)時(shí)完全相同的辦法對(duì)其做進(jìn)一步的拆分。在本例中,顏色現(xiàn)在成了拆分?jǐn)?shù)據(jù)的最佳變量。這一過(guò)程會(huì)一直重下去,直到在某個(gè)分支上拆分?jǐn)?shù)據(jù)時(shí)不會(huì)再有信息增益為止。
決策樹(shù)分類(lèi)器使用說(shuō)明
決策樹(shù)算法的實(shí)現(xiàn)是基于一個(gè)列表的列表進(jìn)行訓(xùn)練的,每個(gè)內(nèi)部列表都包含了一組值,其中的最后一個(gè)值代表分類(lèi)。我們可以按如下所示的方法來(lái)創(chuàng)建前面那個(gè)簡(jiǎn)單的水果數(shù)據(jù)集。fruit =[[4,'red','apple'],[4,'green','apple'],[1,'red','cherry'],[1,'green','grape'],[5,'red','apple']]
現(xiàn)在我們可以對(duì)這顆決策樹(shù)進(jìn)行訓(xùn)練,并利用它對(duì)新的樣本進(jìn)行分類(lèi):importtreepredicttree =treepredict.buildtree(fruit)treepredict.classify([2,'red'],tree){'cherry':1}treepredict.classify([5,'red'],tree){'apple':3}treepredict.classify([1,'green'],tree){'grape':1}treepredict.classify([120,'red'],tree){'apple':3}
很顯然,直徑10英寸并且顏色為紫色的水果不應(yīng)該是蘋(píng)果,但決策樹(shù)受制于其所見(jiàn)過(guò)的樣本,最后我們可以將樹(shù)打印或繪制出來(lái),以理解其決策的推導(dǎo)過(guò)程:treepredict.printtree(tree)0:4?T->{'apple':3}F->1:green? T-> {'grape':1} F-> {'cherry':1}
優(yōu)點(diǎn)和缺點(diǎn)
決策樹(shù)最為顯著的優(yōu)點(diǎn)在于,利用它來(lái)解釋一個(gè)受訓(xùn)模型是非常容易的,而且算法將最為重要的判斷因素都很好地安排在了靠近樹(shù)根部位置。這意味著,決策樹(shù)不僅對(duì)分類(lèi)很有價(jià)值,而且對(duì)決策過(guò)程的解釋也很有幫助。像貝葉斯分類(lèi)器一樣,可以通過(guò)觀察內(nèi)部結(jié)構(gòu)來(lái)理解它的工作方式,同時(shí)這也有助于在分類(lèi)過(guò)程之外進(jìn)一步作出其他的決策。
因?yàn)闆Q策樹(shù)要尋找能夠使信息增益達(dá)到最大化的分界線,因此它也可以接受數(shù)值型數(shù)據(jù)作為輸入。能夠同時(shí)處理分類(lèi)數(shù)據(jù)和數(shù)值數(shù)據(jù),對(duì)于許多問(wèn)題的處理都是很有幫助的--這些問(wèn)題往往是傳統(tǒng)的統(tǒng)計(jì)方法(比如回歸)所難以應(yīng)對(duì)的。另一方面,決策樹(shù)并不擅長(zhǎng)于對(duì)數(shù)值結(jié)果進(jìn)行預(yù)測(cè)。一顆回歸樹(shù)可以將數(shù)據(jù)拆分成一系列具有最小方差的均值,但是如果數(shù)據(jù)非常復(fù)雜,則樹(shù)就會(huì)變得非常龐大,以至于我們無(wú)法借此來(lái)作出準(zhǔn)確的決策。
與貝葉斯決策樹(shù)相比,決策樹(shù)的主要優(yōu)點(diǎn)是它能夠很容易地處理變量之間的相互影響。一個(gè)用決策樹(shù)構(gòu)建的垃圾郵件過(guò)濾器可以很容易的判斷出:"onlie" 和 "pharmacy" 在分開(kāi)時(shí)并不代表垃圾信息,擔(dān)當(dāng)它們組合在一起時(shí)則為垃圾信息。
愛(ài)華網(wǎng)本文地址 » http://www.klfzs.com/a/25101015/280098.html
愛(ài)華網(wǎng)



