01 決策樹 - 數學理論概述 - 熵
今天開始進入決策樹的演算法部分,首先介紹一下這部分涉及到的知識點。
一、大綱
1、資訊熵
決策樹在生成過程中,對於評判是否要對樹進行劃分的關鍵指標。即樹生成時的決策根本。
2、決策樹
之前提過KD樹的劃分標準。02 KNN演算法 - KD Tree KD樹是基於一個劃分的標準(中位數),最後構建起了整個KD樹。決策樹同樣也是一個樹形結構,同樣需要某些決策指標來構建起決策樹。最後幫助我們實現迴歸或分類的目標。
3、決策樹優化
和KD樹一樣,決策樹模型生成以後同樣會存在欠擬合和過擬合的問題。如何解決這些問題就是決策樹優化需要考慮的。
4、剪枝
防止決策樹過擬合的過程,實際生產過程中剪枝的操作用的很少,但面試可能會提問,瞭解即可。
5、決策樹視覺化
匯入一些新的模組,最後將決策樹展現在使用者面前。
二、決策樹的直觀理解
根據一個人是否有房產、婚姻情況、年收入情況判斷一個人是否有能力償還債務。
根據樣本構建出一個模型:
相比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,耗費了多餘的計算機資源。
還可以用下面的公式表示平均每個變數佔用的位元位數量:
p
-log2p
所以,m個變數在不同的出現概率p1~pm時,平均每個變數佔用的位元位公式如下:
四、資訊熵
資訊熵是描述一個資訊量的指標。如果一個事件發生的概率越大,那麼認為該事件蘊含的資訊越少。
當一個事件百分百確定的時候,我們得不到其他推論。那麼認為資訊量為0。
只有當事件的出現存在概率性,說明有額外的資訊影響事件發生,那麼針對這些資訊我們才需要推理判斷 。
資訊熵是系統有序程度的度量,一個系統越是有序,資訊熵就越低。資訊熵就是用來描述系統資訊量的不確定度。
資訊熵 = 位元化隨機變數X佔用位元位的數學期望
五、條件熵
回顧H(X)的概念,並看下面的例子:
令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=數學)?先把數學相關的項提取出來:
現在姓別出現的概率都是2/4,根據公式:
p
-log2p
-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的資訊熵的平均值,叫做條件熵。
以下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圖思考上面公式的意義:
最後給出一個推導公式:
相關文章
- 決策樹演算法-理論篇演算法
- 決策樹詳解,從熵說起熵
- 決策樹在機器學習的理論學習與實踐機器學習
- Spring01:概述及IOC理論推導Spring
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 機器學習:決策樹機器學習
- 決策樹學習總結
- 決策樹
- 機器學習系列文章:貝葉斯決策理論機器學習
- 機器學習——決策樹模型機器學習模型
- 機器學習之決策樹機器學習
- 決策樹模型(3)決策樹的生成與剪枝模型
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 決策樹示例
- 深入淺出學習決策樹(二)
- 深入淺出學習決策樹(一)
- 4. 決策樹
- Decision tree——決策樹
- 決策樹(Decision Tree)
- 機器學習筆記(四)決策樹機器學習筆記
- 機器學習Sklearn系列:(三)決策樹機器學習
- 機器學習|決策樹-sklearn實現機器學習
- 《機器學習Python實現_09_01_決策樹_ID3與C4.5》機器學習Python
- 基礎理論01
- 淺談樹模型與整合學習-從決策樹到GBDT模型
- 分類——決策樹模型模型
- 決策樹演算法演算法
- ML《決策樹(三)CART》
- 機器學習 Day 9 | 決策樹基礎機器學習
- 使用 SVM 和決策樹進行整合學習
- 機器學習之決策樹演算法機器學習演算法
- 機器學習——決策樹模型:Python實現機器學習模型Python
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- SKlearn中分類決策樹的重要引數詳解
- 圖解機器學習 | 決策樹模型詳解圖解機器學習模型
- 《統計學習方法》——從零實現決策樹
- 關於決策樹的理解
- 決策樹和隨機森林隨機森林