从前,小夕种了一棵树
從前,小夕種了一棵樹(shù),種在了小夕的小屋后面~
?
為什么要種這棵樹(shù)呢?因?yàn)檠?#xff0c;它可以幫小夕總結(jié)歷史經(jīng)驗(yàn),然后幫小夕對(duì)當(dāng)前的局勢(shì)做出決策~這樣小夕就可以安心給大家寫(xiě)文章啦~
?
這棵樹(shù)是這樣的。
?
一開(kāi)始,小夕買(mǎi)了一顆小樹(shù)苗,把它栽到地上。
然后呢,小夕不給它澆水,也不給他澆肥料,而是讓他吃歷史經(jīng)驗(yàn)。比如呢,今天,小夕讓它幫小夕識(shí)別出圖片中的生物是喵還是驢。所以呢,這里的歷史經(jīng)驗(yàn)就是一大堆喵和驢的圖片,并且小夕給它標(biāo)注好了每張圖片是喵還是驢。
?
?
可是由于樹(shù)沒(méi)有眼睛呀,不能直接觀察圖片。所以呢,小夕幫它把圖片轉(zhuǎn)化成了特征,也就是用幾個(gè)特征來(lái)描述每張圖片。
?
于是小夕選了如下幾個(gè)特征來(lái)描述每張圖片:
?
1、頭是否是長(zhǎng)條形
2、身上有沒(méi)有毛
3、有沒(méi)有發(fā)現(xiàn)胡須
4、丑不丑
5、萌不萌
?
所以,比如小夕就會(huì)對(duì)下面這張圖片:
?
?
轉(zhuǎn)化為[False True False False True]的特征向量(即,不是長(zhǎng)條頭、有毛、沒(méi)發(fā)現(xiàn)胡須、不丑、萌)
?
然后小夕一口氣給上千張圖片提取完了特征,當(dāng)然,這些圖片都是標(biāo)注好類(lèi)別的。
?
小夕就把它們丟給小夕心愛(ài)的小樹(shù)苗啦~
誒?那小樹(shù)苗要怎么生長(zhǎng)呢?
小夕問(wèn)小樹(shù)苗:
小樹(shù)苗喝了口水,說(shuō):
我每一步的生長(zhǎng)都是非常慎重的,我從不會(huì)多長(zhǎng)個(gè)枝丫或者少長(zhǎng)個(gè)枝丫。每個(gè)樣本這不是有五個(gè)特征嘛,我呢,就會(huì)從中挑選出最有價(jià)值的一個(gè)特征,來(lái)作為我第一次生長(zhǎng)的分支。”
小夕接著問(wèn):
“那小樹(shù)要怎么挑選特征呢??
小樹(shù)苗說(shuō):
“你看啊,比如你挑出來(lái)的第二個(gè)特征,“身上有沒(méi)有毛”,這就是很糟糕的特征。為什么呢?我們就來(lái)看“有沒(méi)有毛”這個(gè)特征。我數(shù)了一下,在所有有毛的動(dòng)物中,50%的動(dòng)物是喵,50%的動(dòng)物是驢。而在所有沒(méi)有毛的動(dòng)物中,也是50%的動(dòng)物是喵,50%的動(dòng)物是驢。所以“有沒(méi)有毛”這個(gè)特征的任何一個(gè)取值下,所有類(lèi)別的樣本數(shù)一樣,是完全等概率的,這樣的特征完全無(wú)法用來(lái)做分類(lèi)啊。因?yàn)椴还苓@個(gè)特征的值是什么,它所映射的各個(gè)類(lèi)別都是等概率的。所以這個(gè)類(lèi)別是最糟糕的。”
小樹(shù)苗喝了口水,接著說(shuō):
但是你用的第三個(gè)特征,“有沒(méi)有胡須”,就非常棒。我統(tǒng)計(jì)了一下,有胡須的動(dòng)物中,喵占了92%,驢占了8%。而沒(méi)有胡須的動(dòng)物中,喵占了20%,驢占了80%。這樣,如果給我一張未知類(lèi)別的樣本,只需要看“有沒(méi)有胡須”這個(gè)特征的話(huà),基本就可以判斷出這個(gè)樣本的類(lèi)別是什么了!比如說(shuō)這個(gè)樣本的這個(gè)特征的值恰好是“沒(méi)有胡須”,那么我就有80%的把握說(shuō)這是一頭驢!當(dāng)然,如果恰好這個(gè)樣本的特征的值是“有胡須”,我就有92%的把握說(shuō)這個(gè)樣本時(shí)一只喵!這么棒的特征,當(dāng)然是首選的啦!所以,我下面要長(zhǎng)的枝丫就是叫做“有沒(méi)有胡須枝丫”!
小夕:
我可能買(mǎi)了一棵假樹(shù)苗。
我。。。應(yīng)該懂你的意思了。你說(shuō)的選擇最優(yōu)特征的方法實(shí)際就是計(jì)算條件熵的過(guò)程。對(duì)于你說(shuō)的“有沒(méi)有毛”這個(gè)很糟糕的特征,由于這個(gè)特征的每個(gè)取值下,各個(gè)類(lèi)別都是完全等概率分布的,所以是最無(wú)序的,最隨機(jī)的特征,我們稱(chēng)為“條件熵最大的特征”。熵最大就是1,所以計(jì)算出的“有沒(méi)有毛”這個(gè)特征的條件熵肯定是1。
而你說(shuō)的“有沒(méi)有胡須”這個(gè)特征,它的每個(gè)取值下,類(lèi)別分布很隨機(jī),也就是說(shuō)很有序(想象一下,最有序的狀態(tài)就是每個(gè)取值下,所有樣本都是同一個(gè)類(lèi)別,多么有序啊。而類(lèi)別等概率分布的時(shí)候,就是每個(gè)特征下魚(yú)龍混雜的時(shí)候,啥類(lèi)別都有,亂糟糟的),這種很有序的特征,計(jì)算出的條件熵肯定很小。最有序的情況下,條件熵就是0啦。
小樹(shù):
好了。但是,我的分類(lèi)目標(biāo)是達(dá)到100%的準(zhǔn)確率。所以,我要進(jìn)一步挑選特征了!
基于有胡須的那個(gè)分支,我會(huì)將這個(gè)分支里的樣本重新計(jì)算各個(gè)特征的條件熵(當(dāng)然胡須這個(gè)特征除外),像之前一樣選擇條件熵最大的特征作為下一個(gè)枝丫!
一直重復(fù)這個(gè)過(guò)程,直到哪一個(gè)枝丫下的全部樣本都是同一個(gè)類(lèi)別了,這個(gè)枝丫就不再繼續(xù)分裂了。?
最終,小樹(shù)長(zhǎng)成了大樹(shù)。
?這時(shí),小夕忙著給大家寫(xiě)文章呢,但是小夕的一個(gè)好閨蜜小婭拿著一張圖片過(guò)來(lái)了,她想讓小夕幫她看看這是驢還是喵。
?
但是小夕很忙呀,沒(méi)空理她,就讓她拿著圖片問(wèn)后院的決策樹(shù)啦~
?
然后小婭去問(wèn)決策樹(shù)這是啥,決策樹(shù)說(shuō):“它有胡須嗎?”
?
小婭說(shuō):“有!”
?
樹(shù):“它萌嗎?”
?
小婭:“一點(diǎn)也不萌!”
?
樹(shù):“它是長(zhǎng)臉嗎?”
?
小婭:“是長(zhǎng)臉!”
?
樹(shù):“那這就是只驢!”
?
留下一臉懵逼的小婭在樹(shù)下凌亂( ̄? ̄)
?
這棵神奇的樹(shù)叫什么呢?
?
這棵樹(shù)的專(zhuān)業(yè)說(shuō)法叫“ID3決策樹(shù)”,為什么是ID3呢?因?yàn)樗峭ㄟ^(guò)計(jì)算條件熵來(lái)選擇最優(yōu)特征的。其他經(jīng)典決策樹(shù)如C4.5決策樹(shù)、CART決策樹(shù)等與ID3的區(qū)別僅在于最優(yōu)特征選擇的算法。
?
然后對(duì)本文總結(jié)一下,本文經(jīng)過(guò)了如下步驟,這也是一個(gè)簡(jiǎn)單的機(jī)器學(xué)習(xí)/數(shù)據(jù)挖掘任務(wù)的經(jīng)典流程。
?
1、對(duì)已標(biāo)注類(lèi)別的數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理與特征提取
2、訓(xùn)練決策樹(shù)(分類(lèi)器/機(jī)器學(xué)習(xí)模型)
3、對(duì)未知類(lèi)別的數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理與特征提取
4、利用決策樹(shù)對(duì)未知類(lèi)別樣本的類(lèi)別做出決策
?
想要詳細(xì)了解ID3決策樹(shù)選擇最優(yōu)特征的過(guò)程(即計(jì)算條件熵)的同學(xué),可以Google或者百度一下“條件熵”或者查閱《數(shù)據(jù)挖掘?qū)д摗返葯C(jī)器學(xué)習(xí)相關(guān)的書(shū)籍;
想要詳細(xì)了解如何代碼實(shí)現(xiàn)ID3決策樹(shù)的同學(xué),可以搜索各種CSDN博客或者查閱《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》等側(cè)重代碼實(shí)現(xiàn)的書(shū)籍;
對(duì)于如何提高決策樹(shù)的泛化能力(防止過(guò)擬合)等優(yōu)化技巧,或者其他類(lèi)型的決策樹(shù),可以看《數(shù)據(jù)挖掘?qū)д摗返冉?jīng)典書(shū)籍~
總結(jié)
以上是生活随笔為你收集整理的从前,小夕种了一棵树的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 阿里P8架构师谈:java架构师面试技能
- 下一篇: Android App包瘦身优化实践