1. 程式人生 > >【深度學習基礎-03】決策樹演算法-熵如何計算舉例

【深度學習基礎-03】決策樹演算法-熵如何計算舉例

目錄

0 機器學習中分類和預測演算法的評估:

1 什麼是決策樹/判定樹decision tree? 

2 決策樹“買電腦”實際例子

3.1熵(entropy)概念:

4 決策樹歸納演算法(ID3)

4.1遞迴演算法:

5 其他演算法


0 機器學習中分類和預測演算法的評估:

  • 準確率
  • 速度
  • 強壯性
  • 可否規模性
  • 可否解釋

1 什麼是決策樹/判定樹decision tree? 

決策樹是一種類似流程圖的樹結構:其中,每一個內部結點表示在一個屬性上的測試,每個分支代表一個屬性輸出,而每個樹葉結點代表類或類分佈。樹的最頂層是根結點。

2 決策樹“買電腦”實際例子

假設有一個數據集

根據這個資料集我們建立了決策樹

         

這樣我們如果拿到一個客戶資料,那麼就可以通過這個就決策樹去判斷是否買電腦

3.1熵(entropy)概念:

資訊和抽象,如何度量?

一條資訊的資訊量大小和它的不確定性有直接的關係,要搞清楚一件非常非常不確定的事情,或者是我們一無所知的事情,需要了解大量資訊(資訊量的度量)就是等於不確定性的多少。

舉個例子:32只足球隊踢比賽,假如你對其一無所知,那麼你用二分法猜6次就行了,這個6就是熵的大小,當你對這些球隊有一定了解,那才四五次就行,當你知道其中1只國家隊,31只小學生隊伍,你猜1次就行了,你知道的資訊越多,熵越小,你知道的資訊越少,熵越大。

熵的計算公式如下:P(x)代表發生概率

變數的不確定性越大,熵也就越大。

4 決策樹歸納演算法(ID3)

選擇屬性判斷結點

資訊獲取量(Information Gain) :  Gain(A) = Info(D) - Info_A(D),通過A來作為節點分類獲取了多少資訊

那麼怎麼選擇節點?以下面這個為例子

以“買不買”電腦計算熵:

當附加年齡,“買不買”電腦的熵:(解釋:5個younth,其中有2個yes,3個no;4個middle,其中4個yes,0個no)

通過上面兩個式子計算以年齡為節點的熵:

類似的,Gain(income)=0.029     Gain(student) = 0.151   Gain(credit_rating) = 0.048 ,所以選擇age最為第一個根節點

這樣就以age為根節點,分成了3類,如上圖所示,每一類要分到沒有其他額外選項即可,比如middle_aged都是yes,那其他兩種還是按照上述方法重複計算熵,然後選擇節點,直到滿足判斷條件

4.1遞迴演算法:

遞迴劃分步驟什麼時候會停止:

  • 給定節點的所有樣本屬於同一類
  • 沒有剩餘屬性可以進一步劃分,這樣情況下,使用多數表決,用樣本中的多數所處類標記
  • 沒有樣本

 5 其他演算法

C4.5:  Quinlan

CART:  Classification and Regression Trees 

共同點:都是貪心演算法,自上而下

區別:屬性選擇度量方法不同:C4.5(gain ratio)   CATR(gini index)   ID3(Information Gain)

 6 其他概念

  • 樹剪枝葉,避免樹太大了太細:(1)先剪枝(2)後剪枝

  • 決策樹優點:直觀便於理解,小規模資料集有效

  • 決策樹缺點:處理連續變數不好(閾值設定會影響)、類別較多時錯誤增加較快、可規模化效能一般