- 又叫判定樹,是一種基本的分類與回歸方法。
- 優點:可讀性強,分類速度快,容易轉換成if-then分類規則
- 通常分為3個步驟:特征(屬性)選擇、決策樹的生成、決策樹的修剪。
- 特征選擇即選擇分裂屬性,又叫屬性選擇度量,把數據划分成較小的分區。
- 決策樹的生成又叫決策樹學習或者決策樹歸納。
- 決策樹生成時采用貪心(即非回溯的、局部最優的)方法,以自頂向下遞歸的分治方式構造,只考慮局部最優。
- 決策樹修剪時遞歸地從樹的葉節點向上回縮,考慮全局最優。
- 決策算法之間的差別包括在創建樹時如何選擇屬性和用於剪枝的機制。
- 決策算法主要為:ID3算法,C4.5算法和CART算法。
- ID3算法和C4.5算法只有決策樹的生成,沒有對決策樹進行剪枝。CART算法包括決策樹的剪枝。
- 在進行特征選擇時,各個算法采用的選擇分裂准則不同:
- ID3算法使用信息增益准則,選擇信息增益最大(熵最小)的特征作為分裂屬性。
- C4.5算法使用信息增益比准則,選擇信息增益比最大的特征作為分裂屬性。
- CART算法使用基尼指數准則,選擇基尼指數最小的特征作為分裂屬性。
- 以信息增益准則划分訓練數據集的特征時,偏向於選擇屬性取值較多的作為分裂屬性;信息增益比准則調整了這種偏倚,但它傾向於產生不平衡的划分,其中一個分區比其他分區小得多;基尼指數准則也是偏向於多值屬性,並且當類的數量很大時會有困難。
- 所有的屬性選擇度量都具有某種偏倚。
- 決策樹歸納時的時間復雜度一般隨樹的高度指數增加。因此,傾向於產生較淺的樹(如多路划分而不是二元划分)的度量可能更可取。但是,較淺的樹趨向於具有大量樹葉和較高的准確率。
- CART算法假設決策樹是二叉樹,即只進行二元划分,不進行多元划分。
- CART算法進行划分時不僅要選擇最優分裂屬性,還要在該屬性的各個屬性值中選擇最優切分點(最優分裂點)。
- CART算法既可以對離散值的數據進行划分生成分類樹;也可以對連續值的數據采用平方誤差最小准則生成回歸樹,又叫最小二乘回歸樹。
- 在決策樹創建的樹是一棵“完全生長”的樹,包含所有的訓練樣本。由於數據中的噪聲和離群點,許多分枝反映的是訓練數據中的異常,造成過分擬合數據問題。因此需要對生成的決策樹進行剪枝。剪枝后的樹更小、更簡單,對獨立的檢驗集分類時具有更強的泛化能力,比未剪枝的樹更快、更好。
- 信息增益的度量標准:熵。熵越大,隨機變量的不確定性就越大,分類能力就越低.
設D為用類別對訓練元組進行的划分,則D的熵(entropy)表示為:
其中pi表示第i個類別在整個訓練元組中出現的概率,可以用屬於此類別元素的數量除以訓練元組元素總數量作為估計。熵的實際意義表示是D中元組的類標號所需要的平均信息量。
現在我們假設將訓練元組D按屬性A進行划分,則A對D划分的期望信息為:
而信息增益即為兩者的差值:
信息增益比:
特征A對訓練數據集D的信息增益比gain_ratio(A)定義為其信息增益gain(A)與訓練數據集D關於特征A的值的熵split_info(A)之比,即:
訓練數據集D關於特征A的值的熵split_info(A) 為:
基尼指數:一種數據的不純度的度量方法,其定義如下:
其中的m仍然表示數據集D中類別C的個數,Pi表示D中任意一個記錄屬於Ci的概率,計算時Pi=(D中屬於Ci類的集合的記錄個數/|D|)。如果所有的記錄都屬於同一個類中,則P1=1,Gini(D)=0,此時不純度最低。在CART(Classification and Regression Tree)算法中利用基尼指數構造二叉決策樹,對每個屬性都會枚舉其屬性值的非空真子集,以屬性R分裂后的基尼系數為:
D1為D的一個非空真子集,D2為D1在D的補集,即D1+D2=D,對於屬性R來說,有多個真子集,即GiniR(D)有多個值,但我們選取最小的那么值作為R的基尼指數。