决策树一CART算法(第二部分)

CART分类树算法


CART分类树算法解读

输入:数据集 D,特征集 A,停止条件阈值 ϵ \epsilon ϵ

输出:CART分类决策树

步骤:

  1. 从根节点出发,进行操作,构建操作二叉树

  2. 计算现有特征下对数据集 基尼指数,选择最优特征。

    ——在特征Ag下,对其可能取的每个值g,根据样本点对Ag=g的测试为“是”我“否”,
    将D分制成D1和D2两部分,计算Ag=g时的基尼指数。
    ——选择基尼指数最小的那个值作为该特征下的最优切分点。
    ——计算每个特征下的最优切分点,并比较在最优切分下的每个特征的基尼指数, 选择基尼指数最小的那个特征,即最优特征。

  3. 根据最优特征和最优切分点,生成两个子节点,并将数据集分配到对应的子节点中

     按照最优切分点来分成二叉树
    
  4. 分别对两个子节点继续递归调用上面的步骤,直到满足条件,即生成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)=DD1Gini(D1)+DD2Gini(D2)
第一种 特征:年龄

三个特征值: 青年 A 11 A_{11} A11 、中年 A 12 A_{12} A12和老年 A 13 A_{13} A13

CART算法是二叉树,所以数据集分为两类,有以下几种情况

  1. 以青年和非青年分类
    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)=DD1Gini(D1)+DD2Gini(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

  2. 以中年和非中年分类
    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)=DD1Gini(D1)+DD2Gini(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

  3. 以老年和非老年分类

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)=DD1Gini(D1)+DD2Gini(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)=DD1Gini(D1)+DD2Gini(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)=DD1Gini(D1)+DD2Gini(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

  1. 以非常好和并不非常好分类
    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)=DD1Gini(D1)+DD2Gini(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

  2. 以好和非好分类
    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)=DD1Gini(D1)+DD2Gini(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

  3. 以一般和非一般分类

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)=DD1Gini(D1)+DD2Gini(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

房子的基尼指数最小,所以作为最优特征绘制二叉树

选特征:同上,按年龄 工作 信贷情况划分

  1. 在无房子数据集内,以年龄特征分类

    年龄 个数 不同意贷款 同意贷款
    青年 4 3 1
    中年 3 2 0
    老年 2 1 2
  2. 在无房子数据集内,以工作特征分类

    工作 个数 不同意贷款 同意贷款
    有工作 3 0 3
    无工作 6 6 0
  3. 在无房子数据集内,以信贷情况特征分类

    信贷情况 个数 不同意贷款 同意贷款
    非常好 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
    所以该节点选择有工作这一特征

    剩下的节点以此类推,最后可以画出完整的分类树


猜你喜欢

转载自blog.csdn.net/qq_44795788/article/details/124675120