C4.5詳解(附帶資訊理論介紹)
C4.5詳解
第六次寫部落格,本人數學基礎不是太好,如果有幸能得到讀者指正,感激不盡,希望能借此機會向大家學習。這一篇內容來自於各種書籍、網上的資料,以及自己的一些見解。關於決策樹的一些基本概念在這篇部落格《Decision Tree簡介(決策樹演算法族的開篇)》中有相關介紹。
預備知識:
這一部分主要是談一談幾種基於資訊理論的結點劃分方法,包括資訊熵(InformaticaEntropy)、資訊增益(InformaticaGain)與增益率(GainRatio)的簡要介紹。
資訊熵(InformaticaEntropy)
“資訊熵”是度量樣本集合純度最常用的一種指標,假設當前樣本集
資訊熵越小,則的純度越高,需要注意的是由於,因此。
資訊增益(InformaticaGain)
假定某一離散屬性有個可能的取值,分別為,若使用來對樣本集進行劃分,則會產生個分支結點。其中第個分支結點包含了中所有在屬性上取值為的樣本,這些樣本的集合記為。可以根據式(1)對的資訊熵進行計算,再考慮到不同的分支結點所包含的樣本數不同,因此給每個分支結點的資訊熵賦予權重,即樣本數越多的分支結點的影響越大,於是可以計算出使用屬性作為劃分屬性,對樣本集進行劃分後所得的“資訊增益”(InformaticaGain)
資訊增益越大,即劃分後的子集合的加權資訊熵越小,則使用屬性來進行劃分所得到的“純度提升”越大。
增益率(GainRatio)
實際上,將資訊增益作為準則存在重要的問題,即他對可能的取值數量較大的屬性(e.g. 樣本編號)有所偏好,為了解決這一問題,某些演算法不直接採用資訊增益做為準則,而是使用“增益率”(GainRatio)來選擇最優劃分屬性,他的定義為
上式中,
稱為屬性的固有值(Intrinsic Value)。與資訊熵的定義類似,屬性的可能的取值數量越大,其固有值越大。
推導過程
主要分為三部分:如何處理連續值、如何處理缺失值以及劃分屬性的選擇標準。
處理連續值
當某一屬性的可取值數目不可數(連續值)或數目很多(離散值)時,可以採用離散化對這種情況進行處理。對於連續屬性,最簡單的離散化方法就是“二分法”(bi-partition),對於離散屬性還可以採用“n分法”(n-partition),即將可取值分成n類。
1. 連續屬性的“二分法”
給定資料集和連續屬性,假定在上出現了個不同的取值,將這些值從小到大進行排列,排列後的可取值集合記為,之後基於劃分點可將資料集分為兩個子集和,他們分別包含那些在屬性 上取值大於的樣本和不大於的樣本。對於連續屬性,可以選取可取值集合中相臨近兩點的均值作為候選劃分點,使用這種方法產生的候選劃分點集的大小為,候選集合為
之後對候選劃分點集中的每個候選點進行考察,選擇使資料集純度提升最高的那個作為劃分點,具體方式如下所示
易知,