決策樹資訊熵數理剖析

2021-09-23 20:23:18 字數 1426 閱讀 6116

**決策樹資訊熵數理剖析**

資訊熵記錄拓展決策樹

張⼀極

2023年年3⽉月9日

假如有乙個集合為a[1,2,3,4,5],另⼀乙個集合為b[1,2,3,2,2,4]

那麼我們對應的應該如何獲取兩個資料集的資訊熵呢,首先我們需要了了解資訊熵的

定義,在數學上,資訊熵作為資料集混亂程度的計算量化指標,我們獲得最後的結果應該是通

過這個公式:

熵 = −∑n pilog2(pi)

i=1在log2n當中,有這麼⼀乙個特點:與x軸交於[0,1],所以當體系混亂的時候,會有特別⼤的負值,那麼體系穩定的時候,會有⼩小的負值存在log函式當中,最後歸正,體系混亂的資料集,

資訊熵就特別⼤大,體系穩定的資料,資訊熵就會趨於0.

在數學當中,與資訊熵有相同含義的資料有gini係數:

gini§ = ∑k pk(1 − pk)

k=1構造決策樹的基本想法是隨著樹深度的增加,節點的熵迅速降低,降低速度越快越好,

資訊熵記錄拓拓展決策樹

那麼⼀一開始我們應該如何去尋找rootnode,我們需要計算當前節點的熵值,⽐比如正樣

本的概率為0.23,負樣本的概率為0.77,熵為[ -0.23*log2_0.23-0.77log2_0.77 ]

資訊增溢,gain(feature):為標準資訊熵減去節點資訊熵,也就是⼀一開始使⽤用的資訊熵

減去使⽤用這個節點作為根節點產⽣生的資訊熵,資訊增溢讓資訊熵迅速降低,越快越好,所以我

們選擇⼀乙個節點肯定是讓資訊熵下降最快的.

algorithms:

id3演算法:

資訊增溢率,利利⽤用資訊增溢值,來與節點⾃自身資訊做商,得到資訊增溢率,⽐比如說我們⼀一開始⽤用

id作為根節點,那麼資訊增溢將會最⼤大化,也就是對於整個決策樹⽽而⾔言,⽤用id每⼀乙個分數都平均的概率

c4.5演算法:

那麼知道了了資訊增溢率,那我們來描述⼀一下評價函式,整個決策樹的評價函式就是:

func = ∑ nth(t)

t−>leaf

那麼對應的就是作為評價函式的我們設為func,那麼func肯定是越⼩小越好,leaf的意思

是葉⼦子,就是葉⼦子節點的⼀乙個資訊熵與葉⼦子節點的樣本權重.

本演算法的優點相⽐比於id3來說是能夠處理理連續性的屬性,將連續的屬性分成不不同區間,

依據就是gain值(資訊增溢)的⼤大⼩小,並且在構建決策樹的時候,可以簡單忽略略缺失資料,只計

算有屬性值的記錄.

決策樹的剪枝:

預剪枝:

在構建決策樹的過程中,提前停⽌止構建,也就是當樣本量量少於某⼀乙個閾值的時候,進⾏行行決策樹的提前

停⽌止.

後剪枝:

決策樹構建完成以後,進⾏行行裁剪:

資訊熵記錄拓拓展決策樹

loss = func =nt h(t) + a|tleaf |

決策樹 資訊熵增益

from math import log import operator defcreatedateset dataset 青年 否 否 一般 否 青年 否 否 好 否 青年 是 否 好 是 青年 是 是 一般 是 青年 否 否 一般 否 中年 否 否 一般 否 中年 否 否 好 否 中年 是 是 ...

利用資訊熵構建決策樹

決策樹演算法普遍存在於我們的日常生活中,我們在不經意間就會使用到決策樹。比如你在糾結是否要去一家公司工作時,可能會用到下面的決策樹 整個決策過程是這樣的 如果公司待遇高,你可能就願意去 如果待遇不高,你可能會繼續考慮公司的平台好不好。如果連平台都不好,那就直接拒絕。如果平台很好,你就會繼續考慮自己在...

決策樹 夏農熵

熵 entropy 是表示隨機變數不確定性的度量.所以熵越小越好 之所以po出來是因為裡面好多小函式自己找了好久 r語言用的人太少了 好痛苦 computing shannonent calshannonent function dataset t null shannonent 0 for i i...