**決策樹資訊熵數理剖析**
資訊熵記錄拓展決策樹
張⼀極
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...