第四章 決策樹
4.1 基本流程
一般的,一棵決策樹包含一個根結點、若干個內部結點和若干個葉結點;葉結點對應於決策結果,其他每個結點則對應於一個屬性測試;每個結點包含的樣本集合根據屬性測試的結果被划分到子節點中;根結點包含樣本全集。
從根結點到每個葉結點的路徑對應了一個判定測試序列。
決策樹學習的目的是為了產生一棵泛化能力強——即處理未見示例能力強的決策樹。其基本流程遵循“分而治之(divide-and-conquer)”的策略。

4.2 划分選擇
決策樹學習的關鍵是第8行——如何選擇最優划分屬性。一般而言,隨着划分過程不斷進行,我們希望決策樹的分支結點包含的樣本盡可能屬於同一類別,即結點的“純度”越來越高。
信息增益
信息熵(information entropy):是度量樣本集合純度最常用的一種指標。

計算時約定:當p=0時,plogp=0

一般而言,信息增益越大,意味着使用屬性a來進行划分所獲得的“純度提升”越大。因此第8行選擇屬性的方法為:

增益率
信息增益准則對可取值數目較多的屬性有所偏好,為減少這種偏好可能帶來的不利影響,C4.5決策樹算法不直接使用信息增益,而是使用
增益率(gain ratio)來選擇最優划分屬性。

IV(a) 稱為屬性 a 的固有值(intrinsic value)。屬性 a 的可能取值數目越多,則 IV(a) 的值通常會越大。
增益率准則對可取值數目較少的屬性有所偏好。
先從候選划分屬性中找到信息增益高於平均水平的屬性,再從中選擇增益率最高的。
基尼指數
CART決策樹(Classification and Regression Tree)使用
基尼指數(Gini index)來選擇划分屬性。
基尼值(Gini(D)):

直觀來說,Gini(D) 反映了從數據集 D 中隨機抽取兩個樣本,其類別標記不一致的概率。因此 Gini(D) 越小,則數據集 D 的純度越高。
屬性 a 的基尼指數:

所以選擇最優划分屬性的方法為:
4.3 剪枝處理
剪枝(pruning)是決策樹學習算法對付過擬合的主要手段。
決策樹剪枝的基本策略有預剪枝(prepruning)和后剪枝(post-pruning)。
預剪枝:在決策樹生成過程中,對每個結點在划分前先進行估計,若當前結點的划分不能帶來決策樹泛化性能提升,則停止划分並將當前結點標記為葉結點;
預剪枝基於“貪心”本質禁止一些分支展開,給預剪枝決策樹帶來了欠擬合的風險。
后剪枝:先從訓練集生成一棵完整的決策樹,然后自底向上的對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來決策樹泛化性能提升,則將該子樹替換為葉結點。
后剪枝決策樹通常比預剪枝決策樹保留更多的分支。一般情形下,后剪枝決策樹欠擬合的風險很小,泛化性能往往優於預剪枝決策樹。但后剪枝過程是在生成完全決策樹之后進行的,並且要自底向上的對樹中所有非葉結點進行逐一考察,因此其訓練時間開銷比未剪枝和預剪枝決策樹都要大得多。
4.4 連續與缺失值
連續值處理
連續屬性離散化技術:最簡單的策略是采用二分法對連續屬性進行處理。



缺失值處理
1). 如何在屬性值缺失的情況下進行划分屬性選擇?


2). 給定划分屬性,若樣本在該屬性上的值缺失,如何對樣本進行划分?

4.5 多變量決策樹
若把每個屬性視為坐標空間中的一個坐標軸,則 d 個屬性描述的樣本就對應了 d 維空間中的一個點,對樣本分類則意味着在這個坐標空間中尋找不同樣本之間的分類邊界。
決策樹所形成的分類邊界有一個明顯的特點:軸平行(axis-paraller),即它的分類邊界由若干個坐標軸平行的分段組成。
例如:


類器。
