1. 程式人生 > >決策樹理解入門總結

決策樹理解入門總結

剛開始接觸決策樹,想邊看西瓜書邊作個大概的筆記:

一、概述

    根據給定訓練資料學得一個模型,用這個模型對新示例進行分類,得出最終決策。

    (聯絡例項理解)決策過程最終結論對應了我們希望的判定結果;決策過程中提出的每個判定問題都是對某個屬性的“測試”;每次測試結果或是匯出結論,或是匯出進一步判定問題,其考慮範圍是上次決策結果的限定範圍之內,如“色澤=青綠”之後再判斷“根蒂=?”,則僅考慮青色瓜的根蒂。

    葉節點--決策結果;其他節點--屬性測試

    根節點--包含樣本全集;根到葉節點路徑--判定測試序列

    決策樹學習遵循“分而治之”策略

二、劃分選擇

    關鍵:如何選擇最優劃分屬性。

    即隨著劃分進行,希望決策樹分支節點所包含的樣本儘可能屬於同一類別,即節點“純度”越來越高。

2.1 資訊熵

    資訊熵:度量樣本集純度,熵值越小,純度越高。

4.2 資訊增益

資訊增益越大,則用屬性進行劃分的“純度提升”越大。

-假定離散屬性a有v個可能的取值,若用屬性a來對樣本集D進行劃分,則有v個分支節點;

-第v個分支節點包含了D中所有在屬性a上取值的樣本,記為Dv -先算出Dv的資訊熵

-再由於不同分支所包含的樣本數不同,給分支賦予權重|Dv|/|D|,即樣本越多,分支節點影響越大

-則屬性a對樣本D進行劃分,得到的資訊增益定義為:

ID3演算法計算舉例:

問題:現有一批學生共同完成一個課題,其中課題組有14位成員,由右表各個成員的情況來判斷是否是合格的組員。

解答: 

-由ID3演算法,需要分別計算每一種劃分的資訊熵。

-先選“任務完成情況”來做劃分,此時各個學生資訊整理如下表:

1)首先計算根節點的熵:     

Entropy(是否合格) = Entropy (5,9)                     

 =  Entropy (0.36 , 0.64)                     

 = - ( 0.36 log2 0.36 ) - ( 0.64 log2 0.64 )                     

 =0.94

2)再計算各種劃分的資訊熵:

Entropy( 是否合格 , 任務完成情況 )

= P(完成1/3) * Entropy (3,2) + P(完成2/3) * Entropy (4,0) + P(全部完成) * Entropy (2,3)

=  (5/14) * 0.971 + (4/14) * 0.0 + (5/14) * 0.971  

= 0.693

3)則用“任務完成程度”特徵來做劃分時的資訊增益值為:        

 G ( 是否合格 , 任務完成情況 )

= E (是否合格) - E (是否合格 , 任務完成情況)                       

= 0.94 - 0.693                          

=0.247

4)分別計算其他特徵的資訊增益值如下:      

5)選擇資訊增益最大的特徵作為劃分標準,整理資料得“完成2/3”分支連線葉子節點(熵為零):

6)其他熵不為零的分支進一步劃分:

7)依照上面的規則,遞迴的執行得到一棵決策樹:

4.3 增益率

   上面介紹中忽略了編號(學號)這一列,如果把“編號”也作為一個劃分屬性,算出資訊增益為0.998(西瓜書中例子,這裡例子,這裡只想說明很大),遠大於其他候選劃分屬性,因為編號產生14個分支(上例),每個分支僅包含一個樣本,即分支節點的分支已經達到最大,但是,這樣的決策樹沒有泛化能力,不能有效預測。

    實際上,資訊增益對數目較多的屬性有所偏好(上面也可以看出),為減少影響,使用“增益率”來選擇最優劃分屬性,具體定義如下:

其中,下面式子稱為屬性a的“固有值”,屬性a的可能取值越多(v越大),則IV的值會越大。

    但是,增益率可能對取值較小的屬性有所偏好。因此,C4.5不是直接用增益率最大的作為劃分屬性,而是用啟發式:先從候選劃分屬性中找出【資訊增益】高於平均水平的屬性,再從中選擇【資訊增益率】最高的。

4.4 基尼指數

    是CART決策樹選擇劃分屬性的方法,資料集D的純度用基尼值來度量,即選擇劃分後基尼指數最小的屬性為最優劃分屬性。

    基尼值直觀上反映了從資料集D抽取兩個樣本,其類別標記不一致的概率。即基尼值越小,資料集D純度越高,與之前相同形式,屬性a的基尼指數定義如下:

三、剪枝處理

    針對“過擬合”問題:決策樹生成中,為了產生儘可能正確的訓練樣本,節點劃分過程將不斷重複,造成分支過多(訓練資料樣本學的“太好”了),導致把訓練集自身特點當作所有資料具有的一般性質而造成“過擬合”,因此用主動去掉一些分支來降低過擬合風險。

    基本策略:

1、預剪枝:決策樹生成過程中,在每個節點劃分前進行估計,若當前結點劃分不能帶來決策樹泛化效能提升,則停止劃分,並將當前結點標記為葉節點。

    一種策略:預留一部分資料作為“驗證集”進行效能評估。

2、後剪枝:先生成完整決策樹,再自底向上對非葉節點進行考察,若將該節點對應的子樹替換成葉節點能提高決策樹的的泛化效能,則將該子樹替換成葉節點。

四、連續與缺失值

1、連續值

二分法(C4.5中策略)

2、缺失值