決策樹
中心思想
決策樹採用“分而治之”的思想,一般包含一個根結點、若干個內部結點和若干個葉結點。
葉結點:決策結果。
根結點與內部結點:屬性測試。
劃分選擇
信息增益
-
信息增益準則對可取值數目較多的屬性有所偏好。
-
假定當前樣本集合D中第k類樣本所佔的比例爲 ,例如指色澤爲青綠的瓜中是好瓜的比例。
則D的信息熵爲:
- 的值越小,則的純度越高。的最小值爲0,最大值爲。
- 對於離散屬性而言,有個可能的取值,若使用對樣本集進行劃分,則會產生個分支結點。其中第個分支結點包含了中所有在屬性上取值爲的樣本。記爲 。
屬性a對樣本集D進行劃分所得到的 “信息增益”:
其中::第v個分支結點包含了D中樣本的數量
:樣本集D中樣本的數量
- 一般而言,信息增益越大,意味着使用屬性a來進行劃分所獲得的“純度提升”越大。
- 一般使用信息增益進行決策樹的劃分屬性選擇,即選擇屬性,例如決策樹學習算法。
增益率
增益率準則對可取值數目較少的屬性有所偏好。
: 先從候選劃分屬性中找出信息增益高於平均水平的屬性,再從中選擇增益率最高的。
增益率:
其中
基尼指數
數據集的純度可使用基尼指數來選擇劃分屬性。
- 越小,數據集的純度越高。
屬性爲的基尼指數:
- 從候選屬性集中,選擇使得劃分後基尼指數最小的屬性作爲最優劃分屬性。
剪枝處理
剪枝處理是決策樹算法應對“過擬合”問題的主要手段。
預剪枝
在結點劃分前先進行估計,若通過當前最優屬性對當前結點的劃分不能帶來泛化性能的提升,則停止劃分並將當前結點標記爲葉結點。
後剪枝
先從訓練集中生成一顆完整的樹,然後自底向上對非葉結點進行考察,若將該結點對應的子樹替換爲葉結點能帶來決策樹泛化性能的提升,則將子樹替換爲葉結點。
隨機森林
隨機森林(Random Forest)是在bagging上的一個擴展變體。
隨機森林以決策樹爲基學習器構建bagging集成:
- 對於集決策樹的每一個結點,先從結點的屬性集合中隨機選取一個包含k個屬性的子集。
- 然後再從此子集中選取一個最優屬性用於劃分。
- 一般取。指代所有的屬性數。
- 隨機森林中基學習器的多樣性不僅來自樣本擾動,還來自屬性擾動。
- 隨機森林的訓練效率常優於bagging。
參考文獻:《西瓜書》第四章、第八章