01 決策樹 - 數學理論概述 - 熵

weixin_34365417發表於2018-10-29

今天開始進入決策樹的演算法部分,首先介紹一下這部分涉及到的知識點。

一、大綱

1、資訊熵

決策樹在生成過程中,對於評判是否要對樹進行劃分的關鍵指標。即樹生成時的決策根本。

2、決策樹
之前提過KD樹的劃分標準。02 KNN演算法 - KD Tree KD樹是基於一個劃分的標準(中位數),最後構建起了整個KD樹。決策樹同樣也是一個樹形結構,同樣需要某些決策指標來構建起決策樹。最後幫助我們實現迴歸或分類的目標。

3、決策樹優化
和KD樹一樣,決策樹模型生成以後同樣會存在欠擬合和過擬合的問題。如何解決這些問題就是決策樹優化需要考慮的。

4、剪枝
防止決策樹過擬合的過程,實際生產過程中剪枝的操作用的很少,但面試可能會提問,瞭解即可。

5、決策樹視覺化
匯入一些新的模組,最後將決策樹展現在使用者面前。

二、決策樹的直觀理解

3153092-6667ec89d88876e5.png

根據一個人是否有房產、婚姻情況、年收入情況判斷一個人是否有能力償還債務。
根據樣本構建出一個模型:

3153092-c5953761aef94108.png
決策樹

相比Logistic模型、迴歸模型中引數的理解,決策樹是一個解釋性更強的模型。

三、位元化

資料:BACADCBD...
這裡ABCD出現的概率都是1/4,等概率。
即P(X=A) =P(X=B) =P(X=C) =P(X=D) =1/4

令A-00 B-01 C-10 D-11(等概率,用兩個位元位表示4個變數即可)
BACADC = 01001011100111
E = 1×1/4 *4 = 1
(每個變數佔用一個位元位,出現概率是1/4,一共4個變數,平均每個變數佔1個位元位)


如果X變數出現概率不同:
即P(X=A)=1/2; P(X=B) = 1/4; P(X=C) =P(X=D) =1/8;

用更少的位元位描述出現概率更大的事件,能夠讓總的位元位數量最少:
令A-0 B-10 C-110 D-111

E=1×1/2 + 2×1/4 + 3×1/8 + 3×1/8 = 1.75
平均每個變數佔1.75個位元位。其他任何一種編碼方式最終得到的期望都會大於1.75,耗費了多餘的計算機資源。

還可以用下面的公式表示平均每個變數佔用的位元位數量:

3153092-11c9660863f9d75b.png

p
-log2p

所以,m個變數在不同的出現概率p1~pm時,平均每個變數佔用的位元位公式如下:

3153092-9ec0604f6e4050d0.png

四、資訊熵

資訊熵是描述一個資訊量的指標。如果一個事件發生的概率越大,那麼認為該事件蘊含的資訊越少。

當一個事件百分百確定的時候,我們得不到其他推論。那麼認為資訊量為0。

只有當事件的出現存在概率性,說明有額外的資訊影響事件發生,那麼針對這些資訊我們才需要推理判斷 。

資訊熵是系統有序程度的度量,一個系統越是有序,資訊熵就越低。資訊熵就是用來描述系統資訊量的不確定度。

資訊熵 = 位元化隨機變數X佔用位元位的數學期望

3153092-eac0785562d50968.png
H(X)是隨機變數X的資訊熵

五、條件熵

回顧H(X)的概念,並看下面的例子:

3153092-3e235d1756b0328d.png

令L(S) = -P(S) × log2(S)
H(X) = L(X=數學) + L(X=IT) + L(X=英語)
= -0.5 × log2(0.5) - 0.25 × log2(0.25) - 0.25×log2(0.25)
= 0.5 + 0.5 + 0.5 = 1.5

H(Y) = L(Y = M) + L(Y = F)
= -0.5 × log2(0.5) - 0.5 × log2(0.5)
= 0.5 + 0.5 = 1

H(X, Y) = L(X=數學, Y=M) + L(X=IT, Y=M) + L(X=英語, Y=F) +
L(X=數學, Y=F) = -0.25 × log2(0.25) × 4 = 2

看明白上面的例子後,接下來引入條件熵的概念:
給定條件X的情況下,隨機變數Y的資訊熵就是條件熵
給定條件X的情況下,所有不同x值情況下,Y的資訊熵的平均值,叫做條件熵

當專業X為數學時,Y的資訊熵的值為:H(Y|X=數學)
怎麼計算H(Y|X=數學)?先把數學相關的項提取出來:


3153092-f7191124e6132985.png

現在姓別出現的概率都是2/4,根據公式:

p

-log2p

3153092-bdfae24ad453a82f.png
平均每個元素佔位元

-log2(0.5)=1:單個性別的資訊熵。
H(Y|X=數學) = -0.5 × log2(0.5) × 2 = 1


H(Y|X=數學) 是 H(Y|X) 的一部分,H(Y|X)還包括H(Y|X=IT)、H(Y|X=英語) 根據上述的方式能夠依次計算出H(Y|X=IT)、H(Y|X=英語) 的值。

回顧一下定義:
給定條件X的情況下,所有不同x值情況下,Y的資訊熵的平均值,叫做條件熵

3153092-c55975f999c3b21d.png
條件熵
3153092-990081798eb2ae26.png
條件熵例子

以下log表示log2

條件熵 H(X/Y)
= H(X/Y=M)×P(Y=M) + H(X/Y=F)×P(Y=F) 即加權平均熵
= [L(X=數學/Y=M)+L(X=數學/Y=M)]×P(Y=M) + H(X/Y=F)×P(Y=F)
= [-0.5 × log(0.5) × 2] × 0.5 + H(X/Y=F)×P(Y=F)
= 0.5 + H(X/Y=F)×P(Y=F) = 0.5 + 0.5 = 1
= H(X, Y) - H(Y)

條件熵 H(Y/X)
= H(Y/X=數學)×P(X=數學)+H(Y/X=IT)×P(X=IT)+H(Y/X=英語)×P(X=英語)
= [-0.5 × log(0.5) × 2] × 0.5+H(Y/X=IT)×P(X=IT)+H(Y/X=英語)×P(X=英語)
= 0.5 + 0 + 0 = 0.5
= H(X, Y) - H(X)

條件熵的另一個公式: H(Y/X) = H(X, Y) - H(X)
事件(X,Y)發生所包含的熵,減去事件X單獨發生的熵,即為事件X發生前提下,Y發生“新”帶來的熵。

結合概率論中的Venn圖思考上面公式的意義:

3153092-e726a7b98082ed11.png

最後給出一個推導公式:


3153092-7303beaf8a655cbb.png

相關文章