Machine Learning--決策樹(一)

決策樹(decision tree):是機器學習常見的算法之一。是基於樹形結構進行決策的。

講決策樹就要提到“信息熵”、“信息增益”、“增益率”和“基尼指數”的概念。

我們先來介紹一下這幾個概念:(講解針對離散型數據,連續型暫時不講)

信息熵(information entropy):是度量樣本集合純度的一種指標。本文使用Ent表示。

  

其中,D表示樣本集合(比如現有100個蘋果的數據,D就表示這100個蘋果),y表示標籤可選擇的個數(比如判斷蘋果的好壞,有“好”和“壞”兩種結果,所以y=2),Pk表示第k類樣本所佔的比例(例如好蘋果有80個,則p1=0.8,p2=0.2)。通過上式可以計算出信息熵的值。

信息熵的值越小,說明集合D的純度越高,即屬於同一類別的蘋果就越多。當全部屬於同一類別時,信息熵的值爲0.

 

信息增益(information gain)

    

a表示樣本衆多屬性中的一個(比如蘋果的顏色,產地,體型等都是屬性),v表示a這個屬性可以取值的個數(比如,蘋果體型這個屬性可以去大、中、小三個值,v=3),Dv表示屬性a取值爲v的時候的樣本空間(比如,全部體型大的蘋果,或者全部體型小的蘋果),D讓然表示全部的樣本空間(所有的蘋果)。通過上式可以計算出信息增益。

信息增益的值越大,則意味着用屬性a來劃分,所獲得的“純度提升”越大。換句話說,就是把好壞蘋果分的越清楚。

計算出所有的屬性所對應的信息增益值,選擇最大的那個屬性,按該屬性將蘋果進行劃分,判斷蘋果是好還是壞。之後再對劃分後的子集合在利用相同的方法選擇屬性進行劃分(已使用過的屬性將不再使用),知道劃分後的蘋果屬於同一類別(都是好的,或者都是壞的)。著名的ID3算法就是以信息增益爲準則來選擇劃分屬性的。

信息增益對可取值數目較多的屬性有所偏好,當一個屬性的可取值很多時,他的信息增益也就回變的很大。(不妨私下試一試)

假如某個屬性是標號,那麼有多少個樣本,該屬性就有多少個取值,該屬性的信息增益肯定是最大的,但是我們在劃分的時候是不會按樣本編號來劃分的。所以我們要消除這樣屬性給我們帶來的錯誤。這就有了增益率。

 

增益率(gain ratio):

  

IV(a)稱屬性a的“固有值”,當屬性a可取的值的個數越多時,IV(a)的值越大。增益率=信息增益/固有值。

因爲,增益率對取值較少的的屬性有所偏好。所以在選區劃分屬性的時候並不是單純的選擇增益了最高的那個,而是在信息增益高於平均水平的屬性中,選擇增益率最高的那個。

著名的C4.5算法就是以增益率爲準則來選擇劃分屬性的。

 

基尼指數:

數據集D的純度可以用基尼值來度量。基尼值(Gini)反應了從數據集D中隨機抽取兩個樣本,其類別標籤不一樣的概率。 基尼值越小,數據集D的純度越高。

所以,我們會選擇基尼指數最小的那個屬性進行劃分。

CART決策樹(classification and regression tree)就是使用基尼指數來選取劃分屬性的。

 

 

 

 

 

 

 

 

 

 

參考書籍是 南京大學 周志華老師的 《機器學習》

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章