AI產(chǎn)品經(jīng)理必修——揭開算法的面紗(決策樹算法)

你是否玩過20個(gè)問題的游戲?游戲的規(guī)則很簡單:參與游戲的一方在腦海里想某個(gè)事物,其他參與者向他提問題,只允許提20個(gè)問題,問題的答案也只能用對(duì)或錯(cuò)來回答。問問題的人通過推斷分解,逐步縮小待猜測事物的范圍。

如果你玩過這個(gè)游戲,那么恭喜你,你已經(jīng)掌握了決策樹算法的應(yīng)用。是不是非常簡單?

什么是決策樹

一圖表示決策樹

所有的機(jī)器學(xué)習(xí)算法中,決策樹應(yīng)該是最友好的了。它呢,在整個(gè)運(yùn)行機(jī)制上可以很容易地被翻譯成人們能看懂的語言,也因此被歸為“白盒模型”。


為了更直觀地理解決策樹,我們現(xiàn)在來構(gòu)建一個(gè)簡單的郵件分類系統(tǒng),如圖:

首先檢測發(fā)送郵件域名地址

如果地址為com,則放置于“無聊時(shí)需要閱讀的郵件”分類

如果不是這個(gè)地址,那么再次檢測

檢查郵件是否有單詞“曲棍球”

包含單詞“曲棍球”,則放置于“需要及時(shí)處理的朋友郵件”分類

不包含單詞“曲棍球”,則放置于“無需閱讀的垃圾郵件”分類

現(xiàn)在,我們來總結(jié)一下決策樹的構(gòu)成:

根節(jié)點(diǎn)。第一個(gè)需要判斷的條件,往往也是最具有特征的那個(gè)條件,我們稱為根節(jié)點(diǎn)。

中間節(jié)點(diǎn)。那個(gè)矩形總是要往下分,并不是最終的結(jié)果,它叫做中間節(jié)點(diǎn)(或內(nèi)部節(jié)點(diǎn))。

。那些帶有文字的線段(一般使用有箭頭的有向線段),線的一端連的是中間節(jié)點(diǎn)、另一端連的是另一個(gè)中間節(jié)點(diǎn)或葉節(jié)點(diǎn),然后線段上還有文字,它叫做邊。

葉節(jié)點(diǎn)。那個(gè)圓角矩形,它就已經(jīng)是最后的結(jié)果了,不再往下了,這一類東西呢,在決策樹里叫做葉節(jié)點(diǎn)。

決策樹的一般流程

(1)收集數(shù)據(jù):可以使用任何方法。

(2)準(zhǔn)備數(shù)據(jù):樹構(gòu)造算法只適用于標(biāo)稱型數(shù)據(jù),因此數(shù)值型數(shù)據(jù)必須離散化。

(3)分析數(shù)據(jù):可以使用任何方法,構(gòu)造樹完成后,我們應(yīng)該檢查圖形是否符合預(yù)期。

(4)訓(xùn)練算法:構(gòu)造樹的數(shù)據(jù)結(jié)構(gòu)。

(5)測試算法:使用經(jīng)驗(yàn)樹計(jì)算錯(cuò)誤率。

(6)使用算法:此步驟可以適用于任何機(jī)器學(xué)習(xí)算法,而使用決策樹可以更好地理解數(shù)據(jù)的內(nèi)在含義。


上面這種樸素的算法很容易想到,但是太容易得到的它往往不夠美好。如果自變量很多的時(shí)候,我們?cè)撨x哪個(gè)作為根節(jié)點(diǎn)呢?選定了根節(jié)點(diǎn)后,樹再往下生長接下來的內(nèi)部節(jié)點(diǎn)該怎么選呢?針對(duì)這些問題,衍生了很多決策樹算法,他們處理的根本問題是上面流程的第四步——訓(xùn)練算法,實(shí)際上也就是劃分?jǐn)?shù)據(jù)集方法。我們來看看代表之一 ——ID3算法


信息增益

在劃分?jǐn)?shù)據(jù)集之前之后信息發(fā)生的變化稱為信息增益,知道如何計(jì)算信息增益,我們就可以計(jì)算每個(gè)特征值劃分?jǐn)?shù)據(jù)集獲得的信息增益,獲得信息增益最高的特征就是最好的選擇。

這里又引入了另一個(gè)概念——熵。這里先不展開說了,我們記住他的概念:一個(gè)事情它的隨機(jī)性越大就越難預(yù)測

具體來說這個(gè)概率p越小,最后熵就越大(也就是信息量越大),如果極端情況一件事情概率為1,它的熵就變成0了。

比如,你如果能預(yù)測一個(gè)彩票的中獎(jiǎng)號(hào)碼就發(fā)達(dá)了;但是,如果你能預(yù)測明天太陽從東邊升起來則毫無價(jià)值。這樣衡量一個(gè)信息價(jià)值的事,就可以由熵來表示。


聰明的你或許已經(jīng)發(fā)現(xiàn)了,決策樹算法其實(shí)就是為了找到能夠迅速使熵變小,直至熵為0的那條路徑,這就是信息增益的那條路。我們將對(duì)每個(gè)特征劃分?jǐn)?shù)據(jù)集的結(jié)果計(jì)算一次信息熵,然后判斷按照哪個(gè)特征劃分?jǐn)?shù)據(jù)集是最好的劃分方式。


舉個(gè)容易理解的例子:

解決問題:預(yù)設(shè)4個(gè)自變量:天氣、溫度、濕度、風(fēng)速,預(yù)測學(xué)校會(huì)不會(huì)舉辦運(yùn)動(dòng)會(huì)?

步驟一:假設(shè)我們記錄了某個(gè)學(xué)校14屆校運(yùn)會(huì)按時(shí)舉行或取消的記錄,舉行或者取消的概率分別為:9/14、5/14,那么它的信息熵,這里也叫先驗(yàn)熵,為:

步驟二:我們同時(shí)記錄了當(dāng)天的天氣情況,發(fā)現(xiàn)天氣好壞和校運(yùn)會(huì)舉行還是取消有關(guān)。14天中,5次晴天(2次舉行、3次取消)、5次雨天(3次舉行、2次取消)、4次陰天(4次舉行)。相對(duì)應(yīng)的晴天、陰天、雨天的后驗(yàn)熵

步驟三:我們計(jì)算知道天氣情況后的條件熵。

步驟四:我們計(jì)算在有沒有天氣情況這個(gè)條件前后的信息增益就是。

步驟五:我們依次計(jì)算在有沒有溫度、濕度、風(fēng)速條件前后的信息增益。

步驟六:根據(jù)設(shè)置的閾值,若信息增益的值大于設(shè)置的閾值,選取為我們的特征值,也就是我們上圖中的矩形節(jié)點(diǎn)。

步驟七:生成決策樹。選取信息增益最大的自變量作為根節(jié)點(diǎn)。其他的特征值依次選取為內(nèi)部節(jié)點(diǎn)

比如上面的例子是這樣的過程:

經(jīng)過如上步驟,我們得到?jīng)Q策樹。可以看到,最終們只選取了3個(gè)特征值作為內(nèi)部節(jié)點(diǎn)。


決策樹的應(yīng)用

決策樹也是一種分類方法。它的分類是二元的,一個(gè)值經(jīng)過相應(yīng)節(jié)點(diǎn)的測驗(yàn),要么進(jìn)入真分支,要么進(jìn)入假分支。所以一組值經(jīng)過決策樹以后,就會(huì)形成從樹跟到結(jié)果節(jié)點(diǎn)的一條唯一路徑。所以它除了可以對(duì)輸入進(jìn)行分類之外,還能給出如此分類的解釋。因此決策樹常常被應(yīng)用于專家系統(tǒng),用于解釋回答人類專家才能回答的問題。例如需要考慮多個(gè)變量時(shí),我們可以利用決策樹進(jìn)行預(yù)測。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容