02-22 決策樹C4.5算法

[TOC] 更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlhtml

決策樹C4.5算法

爲了解決決策樹ID3算法的不足,ID3算法的做者昆蘭基於它的不足改進了決策樹ID3算法。可是可能會有人有疑問,既然上一個決策樹算法叫作ID3算法,爲何改進版本不叫作ID4或者ID5呢?由於當時決策樹過於火爆,有人二次創新把ID四、ID5都用掉了,由此做者另闢蹊徑把ID3算法的改進版本稱爲C4算法,後來C4算法又一次升級便有了如今的C4.5算法。python

1、決策樹C4.5算法學習目標

  1. 使用C4.5算法對連續特徵值離散化
  2. 信息增益比
  3. 使用C4.5算法對特徵值加權
  4. 決策樹C4.5算法步驟
  5. 決策樹C4.5算法優缺點

2、決策樹C4.5算法詳解

上一次說到決策樹ID3算法有4個缺點,而此次做者也是基於這4個缺點改進了算法,也就是如今的C4.5算法。算法

假設現有一個訓練集$D$,特徵集$A$,訓練集中有$m$個樣本,每一個樣本有$n$個特徵,咱們經過該訓練集聊一聊做者對C4.5算法作了哪些改進。數據結構

2.1 連續特徵值離散化

ID3算法的第一個缺點:沒有考慮到連續值的狀況。機器學習

假設現有一個特徵$F$的特徵值爲連續值,從大到小排序爲$f_1,f_2,\ldots,f_m$,C4.5算法對相鄰樣本間的特徵值$f_i,f_{i+1}$取平均數,一共能夠獲得$m-1$個劃分點,其中第$j$個劃分點能夠表示爲學習

\[ S_j = {\frac {f_i + f_{i+1}} {2}} \]

對於這$m-1$個劃分點,分別計算以該點做爲二元分類點的信息增益比,選擇信息增益比最大的點做爲該連續特徵的二元離散分類點,把改點記做$f_t$,則特徵值小於$f_t$的點記做$c_1$;特徵值大於$f_t$的點記做$c_2$,這樣就實現了連續特徵值的離散化。優化

2.2 信息增益比

ID3算法的第二個缺點:以信息增益做爲劃分訓練數據集的特徵,存在於偏向於選擇取值較多的特徵的問題。網站

信息增益做爲標準容易偏向於取值較多的特徵,所以可使用信息增益比做爲劃分節點的標準。信息增益比的概念已經在《熵和信息增益》一文中介紹過,這裏只給出公式人工智能

\[ g_R(D,A) = {\frac{g(D,A)}{H_A(D)}} \]

因爲特徵越多的特徵對應的特徵熵$H_A(D)$越大,則信息增益比$g_R(D,A)$則會變小,所以能夠校訂信息增益容易偏向於取值較多的特徵的問題。htm

2.3 剪枝

ID3算法的第三個缺點:沒有考慮過擬合問題。

決策樹通常採用剪枝的方法解決過擬合問題,剪枝的具體思路將在**《CART樹》**一文中細講。

2.4 特徵值加權

ID3算法的第四個缺點:沒有考慮特徵中含有缺失值的狀況。

假設某個特徵$F$有2個特徵值$f_1,f_2$,先設定缺失$F$特徵的樣本$D_i$的關於特徵$F$的特徵值權重都爲1,即$f_1$和$f_2$。假設$2$個特徵值對應的完好失值的樣本個數爲$3$和$5$,如今把特徵值$f_1,f_2$從新劃入樣本$D_i$中,在樣本$D_i$中$f_1$的權重調節爲${\frac{3}{8}}$,$f_2$的權重調節爲${\frac{5}{8}}$,即樣本$D_i$的特徵$F$的特徵值爲${\frac{3}{8}}*f_1和{\frac{5}{8}}*f_2$。

計算樣本$D_i$的特徵$F$的信息增益比的時候,及計算${\frac{3}{8}}*f_1$和${\frac{5}{8}}*f_2$的信息增益比。

3、決策樹C4.5算法流程

3.1 輸入

假設現有一個訓練集$D$,特徵集$A$,閾值$\epsilon$。

3.2 輸出

C4.5算法決策樹。

3.3 流程

  1. 初始化信息增益的閾值$\epsilon$
  2. 若是$D$中的全部樣本都屬於同一類$C_k$,則返回單節點樹$T$,標記類別爲$C_k$
  3. 若是$A$爲空集,則返回單節點樹$T$,標記類別爲$D$中樣本數最大的類$C_k$
  4. 計算$A$中各個特徵對輸出$D$的信息增益比,選擇信息增益比最大的$A_g$
  5. 若是$A_g$小於閾值$\epsilon$,則返回單節點數$T$,標記類別爲$D$中樣本數最大的類$C_k$
  6. 若是$A_g$大於閾值$\epsilon$,則按照特徵$A_g$的不一樣取值$A_$把$D$分割成若干個子集$D_i$,每一個子集生成一個子節點,子節點對應特徵值爲$A_$,遞歸調用$2-6$步,獲得子樹$T_i$並返回

4、決策樹C4.5算法的優缺點

4.1 優勢

  1. 理論清晰,方法簡單
  2. 學習能力強

4.2 缺點

  1. 只能用於分類
  2. C4.5算法因爲使用了熵的概念,即決策樹的生成須要大量的熵值計算,而且若是特徵值爲連續值,還須要進行排序運算
  3. 使用模型較爲複雜的多叉樹結構

5、小結

決策樹C4.5算法流程上和決策樹ID3算法截然不同,只是在決策樹ID3算法上的某一步流程進行了優化,總而言之,它這種處理方式仍是治標不治本的,而且仍是沒法處理迴歸問題。

接下來咱們將要將一個改革意義的決策樹,目前scikit-learn算法中以及集成學習中都使用該樹做爲目標決策樹,即決策樹CART算法。

相關文章
相關標籤/搜索