1. 程式人生 > >C4.5詳解(附帶資訊理論介紹)

C4.5詳解(附帶資訊理論介紹)

C4.5詳解

第六次寫部落格,本人數學基礎不是太好,如果有幸能得到讀者指正,感激不盡,希望能借此機會向大家學習。這一篇內容來自於各種書籍、網上的資料,以及自己的一些見解。關於決策樹的一些基本概念在這篇部落格《Decision Tree簡介(決策樹演算法族的開篇)》中有相關介紹。

預備知識:

這一部分主要是談一談幾種基於資訊理論的結點劃分方法,包括資訊熵(InformaticaEntropy)、資訊增益(InformaticaGain)與增益率(GainRatio)的簡要介紹。

資訊熵(InformaticaEntropy)

  “資訊熵”是度量樣本集合純度最常用的一種指標,假設當前樣本集

D中第k類樣本所佔比例為pk(k=1,2,...,|y|),其中|y|為樣本集的總類別數量,則D的資訊熵定義為

資訊熵Ent(D)越小,則D的純度越高,需要注意的是由於pk1,因此Ent(D)0

資訊增益(InformaticaGain)

  假定某一離散屬性aV個可能的取值,分別為{a1,a2,...,aV},若使用a來對樣本集D進行劃分,則會產生V個分支結點。其中第v個分支結點包含了D中所有在屬性a上取值為av的樣本,這些樣本的集合記為D

v。可以根據式(1)對Dv的資訊熵Ent(Dv)進行計算,再考慮到不同的分支結點所包含的樣本數不同,因此給每個分支結點的資訊熵賦予權重|Dv|/|D|,即樣本數越多的分支結點的影響越大,於是可以計算出使用屬性a作為劃分屬性,對樣本集D進行劃分後所得的“資訊增益”(InformaticaGain)

資訊增益Gain(D,a)越大,即劃分後的子集合的加權資訊熵越小,則使用屬性a來進行劃分所得到的“純度提升”越大。

增益率(GainRatio)

  實際上,將資訊增益作為準則存在重要的問題,即他對可能的取值數量V較大的屬性(e.g. 樣本編號)有所偏好,為了解決這一問題,某些演算法不直接採用資訊增益做為準則,而是使用“增益率”(GainRatio)來選擇最優劃分屬性,他的定義為

  上式中,

稱為屬性a的固有值(Intrinsic Value)。與資訊熵的定義類似,屬性a的可能的取值數量V越大,其固有值越大。

推導過程

主要分為三部分:如何處理連續值、如何處理缺失值以及劃分屬性的選擇標準。

處理連續值

  當某一屬性的可取值數目不可數(連續值)或數目很多(離散值)時,可以採用離散化對這種情況進行處理。對於連續屬性,最簡單的離散化方法就是“二分法”(bi-partition),對於離散屬性還可以採用“n分法”(n-partition),即將可取值分成n類。
1. 連續屬性的“二分法”
  給定資料集D和連續屬性a,假定aD上出現了n個不同的取值,將這些值從小到大進行排列,排列後的可取值集合記為{a1,a2,...,an},之後基於劃分點t可將資料集D分為兩個子集Dt+Dt,他們分別包含那些在屬性 上取值大於t的樣本和不大於t的樣本。對於連續屬性a,可以選取可取值集合中相臨近兩點的均值作為候選劃分點,使用這種方法產生的候選劃分點集的大小為n1,候選集合為

  之後對候選劃分點集中的每個候選點進行考察,選擇使資料集純度提升最高的那個作為劃分點,具體方式如下所示

易知,