決策樹與隨機森林

決策樹

中心思想

決策樹採用“分而治之”的思想,一般包含一個根結點、若干個內部結點和若干個葉結點。
葉結點:決策結果。
根結點與內部結點:屬性測試。
在這裏插入圖片描述

劃分選擇

信息增益

  • 信息增益準則對可取值數目較多的屬性有所偏好。

  • 假定當前樣本集合D中第k類樣本所佔的比例爲pkp_k ,例如pkp_k指色澤爲青綠的瓜中是好瓜的比例。
    則D的信息熵爲:
    Ent(D)=k=1γpklog2pkEnt(D) = -\sum_{k=1}^{|\gamma|} {p_k}{{\log _2}{p_k}}

  1. Ent(D)Ent(D)的值越小,則DD的純度越高。Ent(D)Ent(D)的最小值爲0,最大值爲log2γ\log_2|\gamma|
  • 對於離散屬性aa而言,有VV個可能的取值,若使用aa對樣本集DD進行劃分,則會產生VV個分支結點。其中第vv個分支結點包含了DD中所有在aa屬性上取值爲ava^v的樣本。記爲DvD^v
    屬性a對樣本集D進行劃分所得到的 “信息增益”
    Gain(D,a)=Ent(D)v=1VDvDEnt(Dv)Gain(D,a) = Ent(D) -\sum_{v=1}^{|V|}{ \dfrac {|D^v|}{|D|}Ent(D^v)}
    其中:Dv|D^v|:第v個分支結點包含了D中樣本的數量
    D|D|:樣本集D中樣本的數量
  1. 一般而言,信息增益越大,意味着使用屬性a來進行劃分所獲得的“純度提升”越大。
  2. 一般使用信息增益進行決策樹的劃分屬性選擇,即選擇屬性a=argmaxaAGain(D,a)a _* = argmax _{a \in A}Gain(D,a),例如ID3ID3決策樹學習算法。

增益率

增益率準則對可取值數目較少的屬性有所偏好。
C4.5C4.5 先從候選劃分屬性中找出信息增益高於平均水平的屬性,再從中選擇增益率最高的。
增益率:
Gain_ratio(D,a)=Gain(D,a)IV(a){Gain\_ratio(D,a)} = \dfrac {Gain(D,a)}{IV(a)}
其中
IV(a)=v=1VDvDlog2DvDIV(a) = -\sum_{v=1}^V {\dfrac {|D^v|}{|D|}\log_2\dfrac {|D^v|}{|D|}}

基尼指數

數據集的純度可使用基尼指數來選擇劃分屬性。
Gini(D)=k=1γkkpkpkGini(D) = \sum_{k=1}^{|\gamma|} \sum_{{k'}\neq k}p^kp^{k'}
=1k=1γpk2=1- \sum_{k=1}^{|\gamma|}p_k^2

  1. Gini(D)Gini(D)越小,數據集DD的純度越高。

屬性爲aa的基尼指數:
Gini_index=v=1VDvDGini(Dv)Gini\_index = \sum_{v=1}^V \dfrac{|D^v|}{|D|} Gini(D^v)

  1. 從候選屬性集AA中,選擇使得劃分後基尼指數最小的屬性作爲最優劃分屬性。

剪枝處理

剪枝處理是決策樹算法應對“過擬合”問題的主要手段。

預剪枝

在結點劃分前先進行估計,若通過當前最優屬性對當前結點的劃分不能帶來泛化性能的提升,則停止劃分並將當前結點標記爲葉結點。

後剪枝

先從訓練集中生成一顆完整的樹,然後自底向上對非葉結點進行考察,若將該結點對應的子樹替換爲葉結點能帶來決策樹泛化性能的提升,則將子樹替換爲葉結點。

隨機森林

隨機森林(Random Forest)是在bagging上的一個擴展變體。
隨機森林以決策樹爲基學習器構建bagging集成:

  • 對於集決策樹的每一個結點,先從結點的屬性集合中隨機選取一個包含k個屬性的子集。
  • 然後再從此子集中選取一個最優屬性用於劃分。
  • 一般取k=log2dk=\log_2ddd指代所有的屬性數。
  • 隨機森林中基學習器的多樣性不僅來自樣本擾動,還來自屬性擾動。
  • 隨機森林的訓練效率常優於bagging。

參考文獻:《西瓜書》第四章、第八章

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章