CART分类树算法
CART分类树算法解读
输入:数据集 D,特征集 A,停止条件阈值 ϵ \epsilon ϵ
输出:CART分类决策树
步骤:
-
从根节点出发,进行操作,构建操作二叉树
-
计算现有特征下对数据集 基尼指数,选择最优特征。
——在特征Ag下,对其可能取的每个值g,根据样本点对Ag=g的测试为“是”我“否”,
将D分制成D1和D2两部分,计算Ag=g时的基尼指数。
——选择基尼指数最小的那个值作为该特征下的最优切分点。
——计算每个特征下的最优切分点,并比较在最优切分下的每个特征的基尼指数, 选择基尼指数最小的那个特征,即最优特征。 -
根据最优特征和最优切分点,生成两个子节点,并将数据集分配到对应的子节点中
按照最优切分点来分成二叉树
-
分别对两个子节点继续递归调用上面的步骤,直到满足条件,即生成CART分类决策树。
这里条件一般是阈值 ,当基尼指数小于这个阈值时,
样本基本属于同一类,或者就是没有更多的特征了,则CART分类决策树的生成
CART分类树真题讲解**
训练集D ,「特征集」分别是 年龄 A 1 A_1 A1 , 是否有工作 A 2 A_2 A2 , 是否有自己的房子 A 3 A_3 A3, 信贷情况 A 4 A_4 A4。
类别为: Y 1 Y_1 Y1=是, Y 2 = 否 Y_2=否 Y2=否
用基尼指数的最小化来选出最优特征」
对于特征A条件下,样本集D的基尼指数为:
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
第一种 特征:年龄
三个特征值: 青年 A 11 A_{11} A11 、中年 A 12 A_{12} A12和老年 A 13 A_{13} A13
CART算法是二叉树,所以数据集分为两类,有以下几种情况
-
以青年和非青年分类
Gini ( D 1 ) = 2 × 2 5 × 3 5 = 12 25 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{2}{5} \times \frac{3}{5}=\frac{12}{25} Gini(D1)=2×52×53=2512
权重 W 1 = 5 15 W_1=\frac{5}{15} W1=155
Gini ( D 1 ) = 2 × 3 10 × 7 10 = 42 100 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{3}{10} \times \frac{7}{10}=\frac{42}{100} Gini(D1)=2×103×107=10042
权重 W 2 = 10 15 W_2=\frac{10}{15} W2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)Gini ( D , A 11 ) = 5 15 × 12 25 + 10 15 × 42 100 = 0.44 \operatorname{Gini}\left(D, A_{11}\right)=\frac{5}{15} \times \frac{12}{25}+\frac{10}{15} \times \frac{42}{100}=0.44 Gini(D,A11)=155×2512+1510×10042=0.44
-
以中年和非中年分类
Gini ( D 1 ) = 2 × 2 5 × 3 5 = 12 25 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{2}{5} \times \frac{3}{5}=\frac{12}{25} Gini(D1)=2×52×53=2512
权重 D 1 = 5 15 D_1=\frac{5}{15} D1=155
Gini ( D 1 ) = 2 × 4 10 × 6 10 = 48 100 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{4}{10} \times \frac{6}{10}=\frac{48}{100} Gini(D1)=2×104×106=10048
权重 D 2 = 10 15 D_2=\frac{10}{15} D2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)Gini ( D , A 12 ) = 5 15 × 12 25 + 10 15 × 48 100 = 0.48 \operatorname{Gini}\left(D, A_{12}\right)=\frac{5}{15} \times \frac{12}{25}+\frac{10}{15} \times \frac{48}{100}=0.48 Gini(D,A12)=155×2512+1510×10048=0.48
-
以老年和非老年分类
Gini ( D 1 ) = 2 × 1 5 × 4 5 = 8 25 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{1}{5} \times \frac{4}{5}=\frac{8}{25} Gini(D1)=2×51×54=258
权重 D 1 = 5 15 D_1=\frac{5}{15} D1=155
Gini ( D 1 ) = 2 × 5 10 × 5 10 = 1 2 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{5}{10} \times \frac{5}{10}=\frac{1}{2} Gini(D1)=2×105×105=21
权重 D 2 = 10 15 D_2=\frac{10}{15} D2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
Gini ( D , A 13 ) = 5 15 × 8 25 + 10 15 × 1 2 = 0.44 \operatorname{Gini}\left(D, A_{13}\right)=\frac{5}{15} \times \frac{8}{25}+\frac{10}{15} \times \frac{1}{2}=0.44 Gini(D,A13)=155×258+1510×21=0.44
**由此可以看出青年和老年基尼指数最小0.44,都可以作为最优划分点**
第二种 特征 :工作
2个特征值:有工作 A 21 A_{21} A21 ,无工作 A 22 A_{22} A22
Gini ( D 1 ) = 2 × 0 5 × 5 5 = 0 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{0}{5} \times \frac{5}{5}=0 Gini(D1)=2×50×55=0
权重 D 1 = 5 15 D_1=\frac{5}{15} D1=155
Gini ( D 2 ) = 2 × 6 10 × 4 10 = 48 100 \operatorname{Gini}\left(D_{2}\right)=2 \times \frac{6}{10} \times \frac{4}{10}=\frac{48}{100} Gini(D2)=2×106×104=10048
权重 D 2 = 10 15 D_2=\frac{10}{15} D2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
Gini ( D , A 2 ) = 5 15 × 0 + 10 15 × 48 100 = 0.32 \operatorname{Gini}\left(D, A_{2}\right)=\frac{5}{15} \times 0+\frac{10}{15} \times \frac{48}{100}=0.32 Gini(D,A2)=155×0+1510×10048=0.32
第三种 特征 :房子
2个特征值:有房子 A 31 A_{31} A31 ,无房子 A 32 A_{32} A32
Gini ( D 1 ) = 2 × 0 6 × 6 6 = 0 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{0}{6} \times \frac{6}{6}=0 Gini(D1)=2×60×66=0
权重 D 1 = 5 15 D_1=\frac{5}{15} D1=155
Gini ( D 2 ) = 2 × 3 9 × 6 9 = 72 81 \operatorname{Gini}\left(D_{2}\right)=2 \times \frac{3}{9} \times \frac{6}{9}=\frac{72}{81} Gini(D2)=2×93×96=8172
权重 D 2 = 10 15 D_2=\frac{10}{15} D2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
Gini ( D , A 3 ) = 6 15 × 0 + 9 15 × 72 81 = 0.27 \operatorname{Gini}\left(D, A_{3}\right)=\frac{6}{15} \times 0+\frac{9}{15} \times \frac{72}{81}=0.27 Gini(D,A3)=156×0+159×8172=0.27
第四种 特征 :信贷情况
三个特征值:非常好 A 41 A_{41} A41 、好 A 42 A_{42} A42和一般 A 43 A_{43} A43
-
以非常好和并不非常好分类
Gini ( D 1 ) = 2 × 0 4 × 4 4 = 0 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{0}{4} \times \frac{4}{4}=0 Gini(D1)=2×40×44=0
权重 W 1 = 4 15 W_1=\frac{4}{15} W1=154
Gini ( D 2 ) = 2 × 6 11 × 5 11 = 60 121 \operatorname{Gini}\left(D_{2}\right)=2 \times \frac{6}{11} \times \frac{5}{11}=\frac{60}{121} Gini(D2)=2×116×115=12160
权重 W 2 = 11 15 W_2=\frac{11}{15} W2=1511
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)Gini ( D , A 41 ) = 4 15 × 0 + 11 15 × 60 121 = 0.36 \operatorname{Gini}\left(D, A_{41}\right)=\frac{4}{15} \times 0+\frac{11}{15} \times \frac{60}{121}=0.36 Gini(D,A41)=154×0+1511×12160=0.36
-
以好和非好分类
Gini ( D 1 ) = 2 × 2 6 × 4 6 = 16 36 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{2}{6} \times \frac{4}{6}=\frac{16}{36} Gini(D1)=2×62×64=3616
权重 D 1 = 6 15 D_1=\frac{6}{15} D1=156
Gini ( D 2 ) = 2 × 4 9 × 5 9 = 40 81 \operatorname{Gini}\left(D_{2}\right)=2 \times \frac{4}{9} \times \frac{5}{9}=\frac{40}{81} Gini(D2)=2×94×95=8140
权重 D 2 = 9 15 D_2=\frac{9}{15} D2=159
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)Gini ( D , A 42 ) = 6 15 × 16 36 + 9 15 × 40 81 = 0.47 \operatorname{Gini}\left(D, A_{42}\right)=\frac{6}{15} \times \frac{16}{36}+\frac{9}{15} \times \frac{40}{81}=0.47 Gini(D,A42)=156×3616+159×8140=0.47
-
以一般和非一般分类
Gini ( D 1 ) = 2 × 4 5 × 1 5 = 8 25 \operatorname{Gini}\left(D_{1}\right)=2 \times \frac{4}{5} \times \frac{1}{5}=\frac{8}{25} Gini(D1)=2×54×51=258
权重 D 1 = 5 15 D_1=\frac{5}{15} D1=155
Gini ( D 2 ) = 2 × 2 10 × 8 10 = 32 100 \operatorname{Gini}\left(D_{2}\right)=2 \times \frac{2}{10} \times \frac{8}{10}=\frac{32}{100} Gini(D2)=2×102×108=10032
权重 D 2 = 10 15 D_2=\frac{10}{15} D2=1510
Gini ( D , A ) = ∣ D 1 ∣ ∣ D ∣ Gini ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ Gini ( D 2 ) \operatorname{Gini}(D, A)=\frac{\left|D_{1}\right|}{|D|} \operatorname{Gini}\left(D_{1}\right)+\frac{\left|D_{2}\right|}{|D|} \operatorname{Gini}\left(D_{2}\right) Gini(D,A)=∣D∣∣D1∣Gini(D1)+∣D∣∣D2∣Gini(D2)
Gini ( D , A 43 ) = 5 15 × 8 25 + 10 15 × 32 100 = 0.32 \operatorname{Gini}\left(D, A_{43}\right)=\frac{5}{15} \times \frac{8}{25}+\frac{10}{15} \times \frac{32}{100}=0.32 Gini(D,A43)=155×258+1510×10032=0.32
**由此可以看出特征一般基尼指数最小0.32,能作为最优划分点**
通过四个特征值得基尼指数进行比较
特征值 | 对应的基尼指数 |
---|---|
年龄 | 0.44 |
工作 | 0.32 |
房子 | 0.27 |
信贷情况 | 0.32 |
房子的基尼指数最小,所以作为最优特征绘制二叉树
选特征:同上,按年龄 工作 信贷情况划分
-
在无房子数据集内,以年龄特征分类
年龄 个数 不同意贷款 同意贷款 青年 4 3 1 中年 3 2 0 老年 2 1 2 -
在无房子数据集内,以工作特征分类
工作 个数 不同意贷款 同意贷款 有工作 3 0 3 无工作 6 6 0 -
在无房子数据集内,以信贷情况特征分类
信贷情况 个数 不同意贷款 同意贷款 非常好 1 0 1 好 4 2 2 一般 4 4 0 同理,可以由数据待选特征:很明显这里特征工作的基尼指数为:
G ( D , A 2 ) = 3 9 × 2 × 0 3 × 3 3 + 6 9 × 2 × 6 6 × 0 0 = 0 G(D,A_2)=\frac{3}{9}\times2\times \frac{0}{3}\times \frac{3}{3}+\frac{6}{9}\times2\times \frac{6}{6}\times \frac{0}{0}=0 G(D,A2)=93×2×30×33+96×2×66×00=0
所以该节点选择有工作这一特征
剩下的节点以此类推,最后可以画出完整的分类树