Cart分类树-模型原理

本文会讲解Cart分类树的原理,并详细解释各个指标的实际意义与计算方法,还会举出实例带领读者进行数值计算

一、划分结点的核心指标

1.基尼值Gini(D)

这里的计算公式是根据概率来计算,实际我们用其比例来当作概率计算;
假设一个0-1分布,其取值为0的概率为0,取值为1的概率为1,这个结果是随机性非常低,那么Gini(D)则为0;也就是说,基尼值越小,随机性越低,基尼值越大,随机性越高;我们希望找到基尼值低的节点进行划分
image

2.基尼指数Gini_index(D)

基尼指数就是对基尼值进行加权平均,其与基尼值的意义一致;基尼指数越低,随机性越低,我们希望找到基尼指数低的节点进行划分
image

二、数值案例

1.数据集

序号 是否有房 婚姻状况 年收入 (K) 是否拖欠贷款
1 yes single 125 no
2 no married 100 no
3 no single 70 no
4 yes married 120 no
5 no divorced 95 yes
6 no married 60 no
7 yes divorced 220 no
8 no single 85 yes
9 no married 75 no
10 no Single 90 Yes

2.计算是否有房的基尼指数

是否有房只有yes和no两个选项,因此先要计算有房子的基尼值,再计算无房子的基尼值,最后加权平均,得到是否有房的基尼指数。
计算基尼值时,首先确定x的取值后,就盯着y这一列,计算其概率值(占比)

(1)有房子的基尼值:

有房子有1、4、7共计三个样本,对应:3个no、0个yes

\[Gini(\text{是否有房,yes}) = 1 - \left(\frac{0}{3}\right)^2 - \left(\frac{3}{3}\right)^2 = 0 \]

(2)无房子的基尼值:

无房子有2、3、5、6、8、9、10共七个样本,对应:4个no、3个yes

\[Gini(\text{是否有房,no}) = 1 - \left(\frac{3}{7}\right)^2 - \left(\frac{4}{7}\right)^2 = 0.4898 \]

基尼系数:第一部分样本占了总样本的3/10、第二部分样本占了总样本的7/10

\[Gini\_index(D, \text{是否有房}) = \frac{7}{10} * 0.4898 + \frac{3}{10} * 0 = 0.343 \]

3.计算婚姻状况的基尼指数

婚姻状况有三个类型,因此我们将married分为一类,其他分为第二类,然后套用二分类的计算方法。
但由于有三种情况,因此我们选取基尼指数最小的那种情况作为该特征的基尼指数。

(1) 计算{married}和{single,divorced}情况下的基尼指数

  • 结婚的基尼值,有2、4、6、9共4个样本,并且对应目标值全部为no:

    \[Gini\_index(D, married) = 0 \]

  • 不结婚的基尼值,有1、3、5、7、8、10共6个样本,并且对应3个no,3个yes

    \[Gini\_index(D, single,divorced) = 1 - \left(\frac{3}{6}\right)^2 - \left(\frac{3}{6}\right)^2 = 0.5 \]

  • 以married作为分裂点的基尼指数:

    \[Gini\_index(D, married) = \frac{4}{10} * 0 + \frac{6}{10} * \left[1 - \left(\frac{3}{6}\right)^2 - \left(\frac{3}{6}\right)^2\right] = 0.3 \]

(2) 计算{single} | {married,divorced}情况下基尼指数

\[Gini\_index(D, single) = \frac{4}{10} * 0.5 + \frac{6}{10} * \left[1 - \left(\frac{1}{6}\right)^2 - \left(\frac{5}{6}\right)^2\right] = 0.367 \]

(3) 计算{divorced} | {single,married}情况下基尼指数

\[Gini\_index(D, divorced) = \frac{2}{10} * 0.5 + \frac{8}{10} * \left[1 - \left(\frac{2}{8}\right)^2 - \left(\frac{6}{8}\right)^2\right] = 0.4 \]

最终:该特征的基尼值为0.3,并且预选分裂点为:{married}和{single,divorced}

4.计算年收入的基尼指数

当计算数值型特征的基尼指数时,还是采用二分类计算策略;首先将该数值升序排序,然后用每个相邻值的中点作为切割点,将小于该点的分为一类,大于该点的另一类,计算其基尼指数;
由于这里有10个点,因此可以划分出9个分割点,经过计算得到,当分割点为97.5时,基尼指数最小,将这个分割点作为预选的分割点
image

5.第1轮结果

是否有房和婚姻状况的基尼指数都是0.3,优先选择特征比较简单的作为父结点;因为特征简单的话划分更加明确,因此选择婚姻状况作为第一轮结果的父节点
image

6.第2轮结果

进行第一轮划分后,数据集也被一分为2,因此第二轮划分的数据集不再是第一轮的数据集了,要用被划分过的数据集重复上述过程
image

posted @ 2026-06-13 17:56  王新文  阅读(11)  评论(0)    收藏  举报