StackOverflow人氣答主(top 0.12%)Amro通過一個(gè)簡(jiǎn)單的二元分類決策樹例子,簡(jiǎn)明扼要地解釋了信息熵和信息增益這兩個(gè)概念。
為了解釋熵這個(gè)概念,讓我們想象一個(gè)分類男女名字的監(jiān)督學(xué)習(xí)任務(wù)。給定一個(gè)名字列表,每個(gè)名字標(biāo)記為m(男)或f(女),我們想要學(xué)習(xí)一個(gè)擬合數(shù)據(jù)的模型,該模型可以用來(lái)預(yù)測(cè)未見的新名字的性別。
現(xiàn)在我們想要預(yù)測(cè)“Amro”的性別(Amro是我的名字)。
第一步,我們需要判定哪些數(shù)據(jù)特征和我們想要預(yù)測(cè)的目標(biāo)分類相關(guān)。一些特征的例子包括:首/末字母、長(zhǎng)度、元音數(shù)量、是否以元音結(jié)尾,等等。所以,提取特征之后,我們的數(shù)據(jù)是這樣的:
我們可以構(gòu)建一棵決策樹,一棵樹的例子:
長(zhǎng)度<7
| 元音數(shù)量<3: 男
| 元音數(shù)量>=3
| | 元音結(jié)尾=1: 女
| | 元音結(jié)尾=0: 男
長(zhǎng)度>=7
| 長(zhǎng)度=5: 男
基本上,每個(gè)節(jié)點(diǎn)代表在單一屬性上進(jìn)行的測(cè)試,我們根據(jù)測(cè)試的結(jié)果決定向左還是向右。我們持續(xù)沿著樹走,直到我們到達(dá)包含分類預(yù)測(cè)的葉節(jié)點(diǎn)(m或f)。
因此,如果我們運(yùn)行這棵決策樹判定Amro,我們首次測(cè)試“長(zhǎng)度<7?”答案為是,因此我們沿著分支往下,下一個(gè)測(cè)試是“元音數(shù)量<3?”答案同樣為真。這將我們導(dǎo)向標(biāo)簽為m的葉節(jié)點(diǎn),因此預(yù)測(cè)是男性(我碰巧是男性,因此這棵決策樹的預(yù)測(cè)正確)。
決策樹以自頂向下的方式創(chuàng)建,但問題在于如何選擇分割每個(gè)節(jié)點(diǎn)的屬性?答案是找到能將目標(biāo)分類分割為盡可能純粹的子節(jié)點(diǎn)的特征(即:只包含單一分類的純粹節(jié)點(diǎn)優(yōu)于同時(shí)包含男名和女名的混合節(jié)點(diǎn))。
這一純粹性的量度稱為信息。它表示,給定到達(dá)節(jié)點(diǎn)的樣本,指定一個(gè)新實(shí)例(名字)應(yīng)該被分類為男性或女性的期望的信息量。我們根據(jù)節(jié)點(diǎn)處的男名分類和女名分類的數(shù)量計(jì)算它。
另一方面,熵是不純粹性的量度(與信息相反)。對(duì)二元分類而言,熵的定義為:
Entropy = - p(a)*log(p(a)) - p(b)*log(p(b))
這一二元熵函數(shù)的圖像如下圖所示。當(dāng)概率為p=1/2時(shí),該函數(shù)達(dá)到其最大值,這意味著p(X=a)=0.5或類似的p(X=b)=0.5,即50%對(duì)50%的概率為a或b(不確定性最大)。當(dāng)概率為p=1或p=0時(shí)(完全確定),熵函數(shù)達(dá)到其最小值零(p(X=a)=1或p(X=a)=0,后者意味著p(X=b)=1)。
當(dāng)然,熵的定義可以推廣到有N個(gè)離散值(超過2)的隨機(jī)變量X:
(公式中的log通常為以2為底的對(duì)數(shù))
回到我們的名字分類任務(wù)中,讓我們看一個(gè)例子。想象一下,在構(gòu)建決策樹的過程中的某一點(diǎn),我們考慮如下分割:
以元音結(jié)尾
[9m,5f]
/ \
=1 =0
------- -------
[3m,4f] [6m,1f]
如你所見,在分割前,我們有9個(gè)男名、5個(gè)女名,即P(m)=9/14,P(f)=5/14。根據(jù)熵的定義,分割前的熵為:
Entropy_before = - (5/14)*log2(5/14) - (9/14)*log2(9/14) = 0.9403
接下來(lái)我們將其與分割后的熵比較。在以元音結(jié)尾為真=1的左分支中,我們有:
Entropy_left = - (3/7)*log2(3/7) - (4/7)*log2(4/7) = 0.9852
而在以元音結(jié)尾為假=0的右分支中,我們有:
Entropy_right = - (6/7)*log2(6/7) - (1/7)*log2(1/7) = 0.5917
我們以每個(gè)分支上的實(shí)例數(shù)量作為權(quán)重因子(7個(gè)實(shí)例向左,7個(gè)實(shí)例向右),得出分割后的最終權(quán)重:
Entropy_after = 7/14*Entropy_left + 7/14*Entropy_right = 0.7885
現(xiàn)在比較分割前后的權(quán)重,我們得到信息增益的這一量度,也就是說,基于特定特征進(jìn)行分割后,我們獲得了多少信息:
Information_Gain = Entropy_before - Entropy_after = 0.1518
你可以如此解釋以上運(yùn)算:通過以“元音結(jié)尾”特征進(jìn)行分割,我們得以降低子樹預(yù)測(cè)輸出的不確定性,降幅為一個(gè)較小的數(shù)值0.1518(單位為比特,比特為信息單位)。
在樹的每一個(gè)節(jié)點(diǎn),為每個(gè)特征進(jìn)行這一運(yùn)算,以貪婪的方式選擇可以取得最大信息增益的特征進(jìn)行分割(從而偏好產(chǎn)生較低不確定性/熵的純分割)。從根節(jié)點(diǎn)向下遞歸應(yīng)用此過程,停止于包含的節(jié)點(diǎn)均屬同一分類的葉節(jié)點(diǎn)(不用再進(jìn)一步分割了)。
注意,我省略了超出本文范圍的一些細(xì)節(jié),包含如何處理數(shù)值特征、缺失特征、過擬合、剪枝樹,等等。
-
決策樹
+關(guān)注
關(guān)注
3文章
96瀏覽量
13548 -
信息熵
+關(guān)注
關(guān)注
0文章
13瀏覽量
7101
原文標(biāo)題:信息論視角下的決策樹算法:信息熵和信息增益
文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論