1. 程式人生 > >機器學習 - 決策樹(中)- ID3、C4.5 以及剪枝

機器學習 - 決策樹(中)- ID3、C4.5 以及剪枝

機器學習 - 決策樹(中)- ID3、C4.5 以及剪枝

  • 決策樹簡述

    決策樹,它的精髓就是決策,可以認為它是 if-then 規則的集合構建成樹形結構的模型。(另,也可認為是定義在特徵空間與類空間上的條件概率分佈。)

    • if-then 規則

      由決策樹的根節點到葉節點的每一條路徑構建一條規則則;路徑上內部節點的特徵對應著規則的條件,而葉節點的類對應著規則的結論。

      其中,對於資料集中的每一個例項都被一條且只有一條路徑或規則覆蓋。

    • 條件概率分佈

      此條件概率分佈定義在特徵空間的一個劃分上。將特徵空間劃分為互不相交的單元或區域,並在每個單元定義一個類的概率分佈,就構成了一個條件概率分佈。決策樹所表示的條件概率分佈由各個單元給定條件下類的條件概率分佈組成。具體的,


      對於包含 N 個樣本的資料集,假設每個樣本具有的特徵為: { x

      ( 1 ) , x (
      2 )
      , . . . x ( n ) } \{x^{(1)},x^{(2)},...x^{(n)}\} ,從 n 個特徵 合理 選擇一個 x ( i ) x^{(i)} ,而後根據 x ( i ) x^{(i)} 的取值進行分類,如果 x ( i ) x^{(i)} 取值是離散的,則按值分類;如果 x ( i ) x^{(i)} 取值是連續的,則可以按區間劃分;接著再根據不同的 x ( j ) x^{(j)} 對已經在上一輪劃分好的樣本基礎上繼續劃分。

    那麼上文中提到的“合理”是怎樣的,對於 x ( i ) x^{(i)} x ( i ) x^{(i)} 又是依據什麼進行選取的呢?接著看下文。

  • 決策樹過程

    對於決策樹的生成,主要運用熵的計算。熵的基礎概念在上文《機器學習 - 決策樹(上)- 資訊理論基礎》已經做了介紹,不再贅述。對於合理的選擇特徵,關鍵在於生成一棵熵不斷下降,且下降速度最快的樹。

    直接上例項:

    假設有數量為 10 的資料集 D D ,其中女生 6 人, 男生 4 人,每個樣本都具有特徵 x ( 1 ) = = { } x ( 2 ) = = { } x^{(1)}=喜愛的節目型別=\{偶像劇,戰爭劇\},x^{(2)}=學歷=\{小學,高中\} (具體資料見下表)。

    以此資料建立決策樹,並預測新樣本為男生還是女生。

    樣本ID 喜愛節目型別 學歷 性別
    1 偶像劇 小學
    2 偶像劇 初中
    3 偶像劇 小學
    4 戰爭劇 初中
    5 偶像劇 初中
    6 戰爭劇 小學
    7 偶像劇 小學
    8 戰爭劇 初中
    9 戰爭劇 初中
    10 偶像劇 小學

    對於資料集 D D ,目標為預測性別。

    在未分類的時候(即根節點)的熵為夏農熵: H ( D ) = [ P ( ) log P ( ) + P ( ) log P ( ) ] = ( 6 10 log 6 10 + 4 10 log 4 10 ) = 0.292 H(D)=-[P(女)\log P(女)+P(男)\log P(男)]=-(\frac{6}{10}\log\frac{6}{10}+\frac{4}{10}\log\frac{4}{10})=0.292
    根節點

    假設以學歷作為劃分依據 { 3 / 2 3 / 2 } \{小學:3 女 / 2 男;初中:3 女 / 2 男\} ,取值有 2 種,則分為 2 個分支:
    在這裡插入圖片描述

    此時對於整個資料集 D D 所包含的資訊用條件熵來計算:

    H ( D ) = k P ( k ) H ( k ) , k { } H(D|學歷)=\sum_{k}P(k)H(k),k∈\{小學,初中\}

                      = [ 5 10 H ( ) + 5 10 H ( ) ] =-[\frac{5}{10}H(小學)+\frac{5}{10}H(初中)]

                      = [ 5 10 ( 3 5 log 3 5 + 2 5 log 2 5 ) + 5 10 ( 2 5 log 2 5 + 3 5 log 3 5 ) ] =-[\frac{5}{10}(\frac{3}{5}\log\frac{3}{5}+\frac{2}{5}\log\frac{2}{5})+\frac{5}{10}(\frac{2}{5}\log\frac{2}{5}+\frac{3}{5}\log\frac{3}{5})]

                      = 0.292 =0.292

    假設以喜愛節目型別作為劃分依據 { 5 / 1 3 / 1 } \{偶像劇:5 女 / 1 男;戰爭劇:3 男 / 1 女\} ,取值 2 中,則分為 2 支:
    喜愛節目型別
    同理可以計算出:

    H ( D ) = k