1. 程式人生 > >決策樹面試知識點最全總結(五)——CART分類樹

決策樹面試知識點最全總結(五)——CART分類樹

CART分類樹用基尼指數選擇最優特徵,同時決定該特徵的最優二值切分點。
**基尼指數:**分類問題中,假設有K個類,樣本點屬於第k類的概率為 p k p_k
則概率分佈的基尼指數定義為:
G i

n i ( p ) = k =
1
K
p k ( 1 p
k
) = 1 k = 1 K p k 2
Gini(p) =\displaystyle\sum_{k=1}^{K}p_k(1-p_k)=1-\displaystyle\sum_{k=1}^{K}p_{k}^{2}
對於給定的樣本集合D,其基尼指數為:
G i n i ( D ) = 1 k = 1 K ( C k D ) Gini(D)=1-\displaystyle\sum_{k=1}^{K}(\frac{|C_k|}{|D|})
其中, C k C_k 是D中屬於第k類的樣本子集,K是類的個數。
如果集合D根據特徵A是否取某一可能值a被分割成 D 1 D 2 D_1和D_2 兩部分,即
D 1 = ( x , y ) D A ( x ) = a D 2 = D D 1 D_1={(x,y)∈D|A(x)=a} D_2 = D - D_1
則在特徵A的條件下,集合D的基尼指數定義為:
G i n i ( D ) = D 1 D G i n i ( D 1 ) + D 2 D G i n i ( D 2 ) Gini(D)=\frac{|D_1|}{|D|}Gini(D_1) +\frac{|D_2|}{|D|}Gini(D_2)
基尼指數Gini(D)表示集合D的不確定性,基尼指數Gini(D,A)表示經A =a分割後集合D的不確定性。
基尼指數值越大,樣本集合的不確定性也越大,這一點和熵類似。

CART分類樹生成演算法:
輸入:訓練資料集D,停止劃分條件
輸出:CART分類樹
根據訓練資料集D,從根節點開始,遞迴的對每個結點進行以下操作,構建二叉樹
1)設結點的訓練資料集為D,計算現有的特徵對該資料集的基尼指數。此時對每一個特徵A,對其每一個可能的取值a,根據樣本點對A=a的測試為“是”或“否”將D分割成 D 1 D 2 D_1和D_2 利用上面的公式計算A=a的基尼指數
2)在所有可能的特徵A以及所有可能的切分點a中,選擇基尼指數最小的特徵及其對應的切分點作為最優特徵與最優切分點。依據最優特徵和最優切分點,從現有結點生成2個子結點,將訓練資料集依特徵分配到兩個子節點中去。
3)對兩個子節點遞迴呼叫1)2),直至滿足停止條件。
4)生成CART分類樹。

連續值與缺失值處理:

**連續值處理:**由於連續屬性的可取數目不再有限,因此,不能直接根據連續屬性的可取值來對結點進行劃分。連續屬性離散化技術就派上用場了,最簡單的策略是採用二分法
給定樣本集D和連續屬性a,假設a在集合D上出現了n個不同的取值,將這些值從小到大排序,記為 a 1 , a 2 a n {a^1,a^2……a^n}

基於劃分點t可將D分為子集 D t + D t D_t^+和D_t^- ,其中 D t + a t D t a t D_t^+包含哪些在屬性a上取值大於t的樣本。D_t^-包含哪些在屬性a上的取值不大於t的樣本。
顯然對於相鄰的屬性取值 a i a i + 1 a^i和a^{i+1} 來說,t在區間 [ a i , a i + 1 ) [a^i,a^{i+1}) 中取任意值產生的劃分結果相同。因此對連續屬性a我們可考察包含 n-1 個元素的候選劃分點集合
T a = a i + a i + 1 2 1 < = i < = n 1 T_a={\frac{a^i+a^{i+1}}{2}|1<= i<= n-1}
即把區間 [ a i , a i + 1 ) [a^i,a^{i+1}) 的中位點 a i + a i + 1 2 \frac{a^i+a^{i+1}}{2} 作為候選劃分點。

缺失值處理:

現實任務中常會遇到不完整樣本,即樣本的某些屬性值缺失。
決策樹中針對缺失值,需要解決以下2個問題:
1)如何在屬性值缺失的情況下進行劃分屬性選擇?
2)給定劃分屬性,若樣本在該屬性上的值缺失,如何對樣本進行劃分?