Cart分类树-模型原理
本文会讲解Cart分类树的原理,并详细解释各个指标的实际意义与计算方法,还会举出实例带领读者进行数值计算
一、划分结点的核心指标
1.基尼值Gini(D)
这里的计算公式是根据概率来计算,实际我们用其比例来当作概率计算;
假设一个0-1分布,其取值为0的概率为0,取值为1的概率为1,这个结果是随机性非常低,那么Gini(D)则为0;也就是说,基尼值越小,随机性越低,基尼值越大,随机性越高;我们希望找到基尼值低的节点进行划分

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

二、数值案例
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
(2)无房子的基尼值:
无房子有2、3、5、6、8、9、10共七个样本,对应:4个no、3个yes
基尼系数:第一部分样本占了总样本的3/10、第二部分样本占了总样本的7/10
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}情况下基尼指数
(3) 计算{divorced} | {single,married}情况下基尼指数
最终:该特征的基尼值为0.3,并且预选分裂点为:{married}和{single,divorced}
4.计算年收入的基尼指数
当计算数值型特征的基尼指数时,还是采用二分类计算策略;首先将该数值升序排序,然后用每个相邻值的中点作为切割点,将小于该点的分为一类,大于该点的另一类,计算其基尼指数;
由于这里有10个点,因此可以划分出9个分割点,经过计算得到,当分割点为97.5时,基尼指数最小,将这个分割点作为预选的分割点

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

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


浙公网安备 33010602011771号