02-21 決策樹ID3算法

[TOC] 更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:<a target="_blank" href="https://www.cnblogs.com/nickchen121/p/11686958.html">http://www.javashuo.com/article/p-vozphyqp-cm.html</a>html

決策樹ID3算法

決策樹(decision tree)是一種基本的分類與迴歸方法,同時因爲自身是弱分類器特別適合集成學習,例如隨機森林、XgBoost。python

本文將經過ID3算法帶你們入門決策樹,以後會另寫文章談談C4.5算法和CART分類迴歸樹。算法

1、決策樹ID3算法學習目標

  1. 信息增益
  2. 決策樹ID3算法流程
  3. 決策樹ID3算法優缺點

2、決策樹引入

假設銀行須要構造一個徵信系統用來發放貸款,若是你是構建該系統的人,你會如何構建該系統呢?數據結構

我說說我將如何構建一個銀行的徵信系統,首先,我會判斷徵信人的年收入有沒有50萬,若是有我直接斷定他能夠貸款,若是沒有我會再作其餘的判斷;其次,判斷徵信人有沒有房產,若是有房產也就是說他有了能夠抵押的不動產,既能夠斷定他能夠貸款,若是沒有,則不能貸款……機器學習

上述整個過程其實就是決策樹實現的一個過程,接下來將從理論層面抽象的講解三種形式的決策樹。學習

決策樹判斷我的信用貸款

3、決策樹ID3算法詳解

3.1 if…else和決策樹

如上一節的徵信系統構建同樣,決策樹ID3算法的思想其實很簡單,當你在使用$if\ldots{elif}\ldots{else}$敲代碼的時候其實就是在使用決策樹的思想,可是你有沒有想過把哪一個判斷條件放在$if$上回更好,是先判斷年收入仍是先判斷有沒有房產呢?其實在1970年的時候就有一位叫昆蘭的大牛使用信息論上熵的概念來思考過這個問題,並在此基礎上使用信息增益這個概念構建了決策樹決策的過程。網站

具體的方法是:從根節點開始,計算全部可能特徵的信息增益,選擇信息增益最大的特徵做爲根節點的特徵,由該特徵的不一樣特徵值做爲不一樣的子節點;再對子節點遞歸調用上述方法,構建決策樹;直到全部特徵的信息增益都很小或者沒有特徵能夠選擇爲止,最後獲得一顆完整的決策樹$T$。人工智能

上述方法構建的決策樹則會如上圖所示相似於算法中的二叉樹,可是須要注意的是ID3算法的決策樹是多叉樹,而且決策樹的各個節點使用信息增益選擇特徵,而後遞歸構建決策樹。spa

3.2 信息增益

在《熵與信息增益》一文中提到:熵$H(X)$度量了隨機變量$X$的不肯定性;條件熵$H(Y|X)$度量了知道$X$之後$Y$剩下的不肯定性;$H(X)-H(X|Y)$度量了$Y$在知道$X$以後不肯定性的減小程度,這個度量記做$g(Y,X)$,而且在決策樹ID3算法中稱爲信息增益。htm

今後處能夠看出,信息增益越大的特徵,$Y$在知道$X$以後不肯定性的減小程度會越大,所以更適合用來分類。

4、決策樹ID3算法流程

4.1 輸入

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

4.2 輸出

ID3算法決策樹。

4.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_{g_i}$把$D$分割成若干個子集$D_i$,每一個子集生成一個子節點,子節點對應特徵值爲$A_{g_i}$,遞歸調用$2-6$步,獲得子樹$T_i$並返回

5、決策樹ID3算法優缺點

5.1 優勢

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

5.2 缺點

  1. 沒有考慮到特徵連續值的狀況,即如人的身高、體重都是連續值,沒法在ID3算法中應用,即ID3算法更適合作分類
  2. 以信息增益做爲劃分訓練數據集的特徵,存在於偏向於選擇取值較多的特徵的問題。由於相同條件下,取值比較多的特徵的信息增益大於取值較少的特徵
  3. 沒有考慮過擬合問題
  4. 沒有考慮特徵中含有缺失值的狀況

6、小結

決策樹ID3算法是最原始的決策樹算法,因爲它較好的解釋型在當時也是火了一段時間。可是他的缺點也是特別明顯的,樹深度大了則容易過擬合,而且沒法處理迴歸問題,沒法處理連續值的問題等等一系列問題。

決策樹ID3算法因爲它自身的缺陷目前已較少使用,也由於這些缺點有了咱們下一篇要介紹的算法——決策樹C4.5算法。

相關文章
相關標籤/搜索