CART算法的原理,网上一抓一大把,在这里我就不过多赘述,现在我直接用一个实例进行讲解,CATR算法在分裂时是如何计算的
注:CART算法一般适用于二分类,构建二叉树
1、数据集D:
年龄 有工作 有自己的房子 信贷情况 类别
青年 否 否 一般 否
青年 否 否 好 否
青年 是 否 好 是
青年 是 是 一般 是
青年 否 否 一般 否
中年 否 否 一般 否
中年 否 否 好 否
中年 是 是 好 是
中年 否 是 非常好 是
中年 否 是 非常好 是
老年 否 是 非常好 是
老年 否 是 好 是
老年 是 否 好 是
老年 是 否 非常好 是
老年 否 否 一般 否
2、开始计算
第一步,分别设四个特征(年龄、有工作、有自己的房子、信贷情况)为,
,
,
。四个特征的取值分别为
(青年、中年、老年)
(是、否),
(是、否),
(一般、好、非常好)
开始求取特征A1的基尼系数:
Gini(D,=老年) =
同理可得:
Gini(D,=是) = 0.32
Gini(D,=是) = 0.27
特征A4的基尼系数:
Gini(D,=1) = 0.36
Gini(D,=2) = 0.47
Gini(D,=3) = 0.32
在,
,
,
四个特征中,Gini(D,
=是) = 0.27最小,所以选择
为最优特征,
=是为最优且分点。此时根节点生成两个子节点,一个是叶子节点,另外一个是含有
,
,
三个特征,对这个节点使用上述方法,得到
=是为最优特征和最优切分点。按照上述步骤进行计算,所有节点都是叶子结点