決策樹-資訊增益,資訊增益率,Gini
話說今天《機器學習》上課被很深地打擊了,標名為“資料探勘”專業的我居然連個資訊增益的例子都沒能算正確。唉,自看書以來,這個地方就一直沒有去推算過,每每看到決策樹時看完Entropy就直接跳過後面增益計算了。因而,總想找個時間再回過來好好看一下,這不,被逼上了呢。神奇的墨菲定律呢:你擔心它發生的,它就一定會發生。
回正題了,這三個指標均是決策樹用來劃分屬性的時候用到的,其中資訊增益(Info Gain)用於ID3,Gini用於CART,資訊增益率(Info Gain Ratio)用於C4.5。提到前兩個指標的計算時,首先要講到的是關於熵(Entropy)的計算。
1、熵(Entropy)
理論上來說用於決策樹的屬性選擇函式,為方便計算,往往是定義為其屬性的不純性度量,那麼必須滿足如下三個條件:
- 當結點很純時,其度量值應為0
- 當不純性最大時(比如所有類都有同樣的可能),其度量值應最大
- 度量應該服從多級特性,這樣決策樹才能分階段建立起來
measure([2,3,4])=measure([2,7])+frac79timesmeasure([3,4])
而熵(Entropy)能夠滿足以上三點特性。熵(Entropy)是由“資訊理論之父”夏農提出的,更多的各種歷史、數學理論請檢視參考[1]。接下來,看看熵的計算公式如下:
entropy(p1,p2,…,pn)=–p1log2(p1)–p2log2(p2)–…–pnlog2(pn)其中,( p_i )為比例值。其實,熵也可以用另外一種意思來解釋:
Given a probability distribution, the info required to predict an event is the distribution’s entropy. Entropy gives the information required in bits (this can involve fractions of bits!)
可以簡單的理解為“熵”描述了用來預測的資訊位數。接下來看個例子:
如下表所述的天氣資料,學習目標是預測Play or not play?
表1 天氣預報資料集例子
Outlook | Temperature |
Humidity |
Windy | Play? |
sunny | hot | high | false | no |
sunny | hot | high | true | no |
overcast | hot | high | false | yes |
rain | mild | high | false | yes |
rain | cool | normal | false | yes |
rain | cool | normal | true | no |
overcast | cool | normal | true | yes |
sunny | mild | high | false | no |
sunny | cool | normal | false | yes |
rain | mild | normal | false | yes |
sunny | mild | normal | true | yes |
overcast | mild | high | true | yes |
overcast | hot | normal | false | yes |
rain | mild | high | true | no |
共14個例項,9個正例(yes),5個負例(no)。
這樣當前資料的資訊量(原始狀態)用熵來計算就是:
info(play?)=info([9,5])=entropy(frac914,frac514)=–frac914log2(frac914)–frac514log2(frac514)=0.410+0.530=0.940有了上面計算熵(資訊)的基礎,接下來看資訊增益了。
2、資訊增益(Info Gain)
資訊增益,按名稱來理解的話,就是前後資訊的差值,在決策樹分類問題中,即就是決策樹在進行屬性選擇劃分前和劃分後的資訊差值,即可以寫成:
gain()=infobeforeSplit()–infoafterSplit()如上面的例子,通過使用Outlook屬性來劃分成下圖:
在劃分後,可以看到資料被分成三份,則各分支的資訊計算如下:
info([2,3])=−frac25log2(frac25)–frac35log2(frac35)=0.971bits info([4,0])=−frac44log2(frac44)–frac04log2(frac04)=0bits ,此處雖然( log_2(0) )沒有定義,但( 0 times log_2(0) )仍然計算為0。 info([3,2])=−frac35log2(frac35)–frac25log2(frac25)=0.971bits因此,劃分後的資訊總量應為:
info([2,3],[4,0],[3,2])=frac514times0.971+frac414times0+frac514times0.971=0.693bits如果把上面的公式整理到一起的話,就是:
$$ info([2,3], [4,0], [3,2]) = frac{5}{14}times info([2,3]) + frac{4}{14}times info([4,0]) + frac{5}{14}times info([3,2])
= 0.347 + 0 + 0.347 = 0.694 bits $$
從上面可以看出,劃分後的資訊總量計算公式為:
info(S1,…,Sn)=sumnifrac|Si||S|timesentropy(Si)其中,n表示劃分後的分支數目,( |S| )表示劃分前的例項個數,( |S_i| )表示劃分後某個分支的例項個數。
最後,資訊增益
gain(outlook|play?)=infobeforeSplit()–infoafterSplit()=info(play?)–info([3,2],[4,0],[3,2])=0.940–0.694=0.246bits通過劃分其他屬性,可得到其他的樹如下:
同樣計算,
gain(Temperature|play?)=info([9,5])–info([2,2],[4,2],[3,1])=0.940–(frac414timesinfo([2,2])+frac614timesinfo([4,2])+frac414timesinfo([3,1]))=0.028bits gain(Humidity|play?)=0.152bits gain(Windy|play?)=0.048bits這樣,演算法會選擇最大的資訊增益屬性來進行劃分,在此處為Outlook屬性。接下來在Outlook=sunny結點,按照同樣的判斷方法,選擇其他屬性進行劃分,
計算如下:
infobeforeSplit()=info([2,3])=0.971bits 2個正例,3個負例,計算其熵 gain(Temperature|Outlook相關推薦
機器學習實戰決策樹(一)——資訊增益與劃分資料集
from math import log #計算給定的熵 def calcsahnnonent(dataset): numentries = len(dataset) #計算例項的總數 labelcounts ={} #
決策樹演算法——熵與資訊增益(Python3實現)
1、熵、條件熵與資訊增益 (1)熵(entropy) (2)條件熵(conditional entropy) (3)資訊增益(information gain) 2、資訊增益演算法實現流程 2、資料集以及每個特徵資訊增益的計算
[譯] 設計師的決策樹:當遇到豬隊友時,你需要一個系統來控制每個人
原文地址:A Decision Tree for Designers 原文作者:Cap Watkins 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m… 譯者:zhmhhu 校對者:calpa, Wangalan30
離散型與連續型資料決策樹構建及列印實現 R語言,ID3,C4.5演算法
本人的第一篇文章,趁著我們的資料探勘課設的時間,把實現的決策樹程式碼,拿出來分享下。有很多漏洞和缺陷,還有很多駭客思想的成分,但是總之,能實現,看網上的程式碼,能用的其實也沒幾個。廢話不多說,直接看程式碼 特別鳴謝博主skyonefly的程式碼 附上鍊接:R
音頻中采樣位數,采樣率,比特率的名詞解釋(轉)
工程 性能 dvd 工作室 轉化 術語 意思 普通 時間間隔 采樣位數: 采樣位數可以理解為采集卡處理聲音的解析度。這個數值越大,解析度就越高,錄制和回放的聲音就越真實。我們首先要知道:電腦中的聲音文件是用數字0和1來表示的。所以在電腦上錄音的本質就是把模擬聲音信號轉換成
什麽是音頻視頻比特率,采樣率,講的很不錯
article details 次數 要素 清晰 lame 質量 位數 class 簡單來講,采樣率和比特率就像是坐標軸上的橫縱坐標。 橫坐標的采樣率表示了每秒鐘的采樣次數。 縱坐標的比特率表示了用數字量來量化模擬量的時候的精度。 采樣率類似於動態影像的幀數,比如電影
【機器學習筆記】:一文讓你徹底理解準確率,精準率,召回率,真正率,假正率,ROC/AUC
作者:xiaoyu 微信公眾號:Python資料科學 非經作者允許,禁止任何商業轉載。 ROC/AUC作為機器學習的評估指標非常重要,也是面試中經常出現的問題(80%都會問到)。其實,理解它並不是非常難,但是好多朋友都遇到了一個相同的問題,那就是:每次看書的時候
NS中吞吐量,丟包率,端到端延遲等計算[轉載]
原文地址:http://blog.csdn.net/lqzixi/article/details/6044641 ------------------------------------- How to measure the throughput, packet dr
決策樹-資訊增益,資訊增益率,Gini
話說今天《機器學習》上課被很深地打擊了,標名為“資料探勘”專業的我居然連個資訊增益的例子都沒能算正確。唉,自看書以來,這個地方就一直沒有去推算過,每每看到決策樹時看完Entropy就直接跳過後面增益計算了。因而,總想找個時間再回過來好好看一下,這不,被逼上了呢。神奇的
決策樹--資訊增益,資訊增益比,Geni指數的理解
部分理解: 關於決策樹生成 決策樹的生成過程就是 使用滿足劃分準則的特徵不斷的將資料集劃分為純度更高,不確定性更小的子集的過程。 對於當前資料集D的每一次的劃分,都希望根據某特徵劃分之後的各個子集的純度更高,不確定性更小。 而如何度量劃分資料集前後的資料集的純度以及不確定性呢? 答案:特徵選擇準
機器學習:資訊熵,基尼係數,條件熵,條件基尼係數,資訊增益,資訊增益比,基尼增益,決策樹程式碼實現(一)
文章目錄 初始化,涉及到使用的變數: 資訊熵 定義公式,經驗公式 程式碼: 基尼係數 定義公式,經驗公式 程式碼: 條件熵,條件基尼係數 條件熵定義公式,經驗公式
2.2決策樹之資訊增益率
資訊增益率 資訊增益率計算公式:Gain-ratio=Gain(A)/I G(A)即Gain(S, A)=E(S)–E(S, A) 如下圖所示:屬性A有五個取值,每個取值對應一個例項,則I
樹模型中分裂特徵選擇標準--資訊熵,資訊增益,資訊增益率的計算
1.熵:集和的熵值 -sum(pi * log(pi , 2))2.資訊增益:集和的熵-按照特徵a劃分後子集的熵加權和(偏向類別數目多的屬性) 3.資訊增益率:資訊增益/屬性的熵(偏向類別數目少的屬性)4.基尼值:1-集和各類別值的概率平方和(隨機抽取兩個樣本其類別不一致的概
python實現西瓜書《機器學習》習題4.3資訊增益決策樹
首先這篇的格式可能會亂,markdown裝上以後,有時候是用csdn原來的編輯器,有時候就變成了markdown編輯器,蒙。 更蒙的是,大牛的程式碼太飄逸了,有點看不懂,慣例先來原地址:https://blog.csdn.net/Snoopy_Yuan/article/details/689
決策樹----熵、資訊增益(ID3)、C4.、多方式原始碼實現
談決策樹之前先做一些預備性知識: 1.什麼是資訊?如何衡量資訊的多少?怎麼衡量? 資訊:從廣義上講,是事物運動時發出的訊號所帶來的訊息,是事物存在方式和運動規律的一種表現形式。不同的事物具有不同的存在方式和運動規律,從而構成了各種事物的不同特徵。資訊普遍存在於自
決策樹中的熵、條件熵、資訊增益和Gini指數計算示例
文章目錄資訊熵條件熵資訊增益公式計算計算示例 資訊 首先我們從什麼是資訊來著手分析: I(X=xi)=−log2p(xi)I_{(X = x_i)} = -log_2p(x_i)I(X=xi)=−log2p(xi) I(x)I(x)I(x)用來表示隨機變
通俗理解決策樹演算法中資訊增益的
通俗理解決策樹演算法中的資訊增益 在決策樹演算法的學習過程中,資訊增益是特徵選擇的一個重要指標,它定義為一個特徵能夠為分類系統帶來多少資訊,帶來的資訊越多,說明該特徵越重要,相應的資訊增益也就越大。 1、概念 我們前面說了,資訊熵是代表隨機變數的複雜度(不確定度)通
決策樹資訊增益
決策樹和整合演算法都是樹模型 決策樹:從根節點一步步走到葉子節點,所有的資料都會落到葉子節點,既可以做分類也可以做迴歸。 一顆樹有三種節點組成,根節點,中間幾點,葉子節點。根節點是第一個選擇節點,也是最重要的一個選擇特徵。葉子節點是存放最終的結果。 決策樹的訓練和測試 訓練是建立一棵
【演算法】決策樹,資訊熵,資訊增益,Gini
決策樹演算法中,ID3使用資訊增益(選大的),C4.5使用資訊增益比(選大的),CART使用Gini(選小的)。決策樹是通過一系列規則對資料進行分類的過程。它提供一種在什麼條件下會得到什麼值的類似規則的方法。決策樹分為分類樹和迴歸樹兩種,分類樹對離散變數做決策樹,迴歸樹對連續