決策樹是什麼
- 決策樹由結點(node)和有向邊(directed edge)組成。
- 結點有兩種類型:內部結點(internal node)和葉結點(leaf node)。
- 內部結點表示一個特徵或屬性。
- 葉結點表示一個類,是無法再拆分的結點。
決策樹構造過程
把決策樹看成一個if-then規則的集合,將決策樹轉換成if-then規則的過程是這樣的:
- 由決策樹的根結點(root node)到葉結點(leaf node)的每一條路徑構建一條規則。
- 路徑上內部結點的特徵對應着規則的條件,而葉結點的類對應着規則的結論。
- 決策樹的路徑或其對應的if-then規則集合具有一個重要的性質:互斥並且完備。這就是說,每一個實例都被一條路徑或一條規則所覆蓋,而且只被一條路徑或一條規則所覆蓋。這裏所覆蓋是指實例的特徵與路徑上的特徵一致或實例滿足規則的條件。
決策樹的構造過程一般分爲3個部分,分別是特徵選擇、決策樹生產和決策樹裁剪。
1. 特徵選擇
- 表示從衆多的特徵中選擇一個特徵作爲當前節點分裂的標準,如何選擇特徵有不同的量化評估方法,從而衍生出不同的決策樹,如ID3(通過信息增益選擇特徵)、C4.5(通過信息增益比選擇特徵)、CART(通過Gini指數選擇特徵)等。
目的(準則):使用某特徵對數據集劃分之後,各數據子集的純度要比劃分前的數據集D的純度高(也就是不確定性要比劃分前數據集D的不確定性低)
2. 決策樹的生成
根據選擇的特徵評估標準,從上至下遞歸地生成子節點,直到數據集不可分則停止決策樹停止生長。這個過程實際上就是使用滿足劃分準則的特徵不斷的將數據集劃分成純度更高,不確定性更小的子集的過程。對於當前數據集的每一次劃分,都希望根據某個特徵劃分之後的各個子集的純度更高,不確定性更小。
3.決策樹的裁剪
決策樹容易過擬合,一般需要剪枝來縮小樹結構規模、緩解過擬合。
ID3算法
- 核心是在決策樹各個節點上應用信息增益準則選擇特徵遞歸地構建決策樹
信息增益
- 熵
信息論與概率統計中,熵是表示隨機變量不確定性的度量。設是一個取有限個值得離散隨機變量,其概率分佈爲:
則隨機變量X的熵定義爲:
期中n是分類的數目。熵越大,隨機變量的不確定性就越大。
2. 條件熵
有隨機變量(X, Y),其聯合概率分佈爲:
條件熵表示在已知隨機變量的條件下,隨機變量的不確定性。隨機變量X給定的條件下隨機變量的條件熵,定義爲給定條件下的條件概率分佈的熵對的數學期望:
當熵和條件熵中的概率由數據估計得到時(如極大似然估計),所對應的熵與條件熵分別稱爲經驗熵和經驗條件熵。
3. 信息增益
信息增益是相對於特徵而言的。所以,特徵A對訓練數據集D的信息增益,定義爲集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵之差,即:
設訓練數據集爲,表示樣本容量(樣本個數)。有K個類
,爲屬於類的樣本個數,.
設特徵A有n個不同的取值,根據特徵A的取值將D劃
分爲個子集, 爲子集的樣本數,
.記子集中屬於類的樣本集合爲,即
,爲的樣本數。
條件熵公式可以寫爲下式:
理解:選擇劃分後信息增益大的作爲劃分特徵,說明使用該特徵後劃分得到的子集純度越高,即不確定性越小。因此我們總是選擇當前使得信息增益最大的特徵來劃分數據集。
缺點:信息增益偏向取值較多的特徵(原因:當特徵的取值較多時,根據此特徵劃分更容易得到純度更高的子集,因此劃分後的熵更低,即不確定性更低,因此信息增益更大)。
下面來舉例說明上式公式的計算。
- 數據(統計學習方法)
- 計算
數據集D有2個類別,,,計算經驗熵:
計算各個特徵對數據集的增益,四個特徵爲。
以爲例進行說明。
有3個不同的取值,特徵將數據集劃分爲3個子集,$D_1,D_2,D_3分別是取值爲青年、中年、老年的數據集。 ,, , 中類別否的個數爲3,類別是的個數爲2,即,,類似地,,,,。故對數據集的增益爲:
根據上述方法同樣可計算其他特徵對數據集D的增益。
4. ID3算法流程
輸入:訓練數據集D,特徵集A,閾值ε;
輸出:決策樹T.
Step1:若D中所有實例屬於同一類,則T爲單結點樹,並將類作爲該節點的類標記,返回T;
Step2:若A=Ø,則T爲單結點樹,並將D中實例數最大的類作爲該節點的類標記,返回T;
Step3:否則,計算A中個特徵對D的信息增益,選擇信息增益最大的特徵;
Step4:如果的信息增益小於閾值ε,則T爲單節點樹,並將D中實例數最大的類作爲該節點的類標記,返回T
Step5:否則,對的每一種可能值,依將D分割爲若干非空子集,將中實例數最大的類作爲標記,構建子結點,由結點及其子樹構成樹T,返回T;
Step6:對第i個子節點,以爲訓練集,以爲特徵集合,遞歸調用Step1~step5,得到子樹,返回。
C4.5
C4.5算法與ID3算法相似,它是在生成決策樹過程中採用信息增益比來選擇特徵。信息增益會偏向取值較多的特徵,使用信息增益比可以對這一問題進行校正。
特徵A對訓練數據集D的信息增益比定義爲其信息增益與訓練數據集D關於特徵A的值的熵
其中,,n是特徵A取值的個數。n越大,越大。
C4.5算法過程跟ID3算法一樣,只是選擇特徵的方法由信息增益改成信息增益比。