决策树(CART算法)

         分类问题中,假设有K个类,样本点属于第k类的概率为 p k p_k ,则概率分布的基尼指数定义为:
                                   在这里插入图片描述
其中 p k p_k 表示选中的样本属于 k k 类别的概率,则这个样本被分错的概率为 ( 1 p k ) (1-p_k)
         对于给定的样本集合D,其基尼指数为:
                                   在这里插入图片描述
这里的 C k C_k 是D中属于第k类的样本数据,K是类的个数。

        如果样本集合D根据特征A是否取某一可能值a被分割成 D 1 D_1 D 2 D_2 两部分,即
              在这里插入图片描述
则在特征A的条件下,集合D的基尼指数定义为:
                        在这里插入图片描述
说明:基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经A=a分割后集合D的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点跟熵相似。

算法

输入:训练数据集D,停止计算的条件

输出:CART决策树

根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉树:

Step1:设结点的训练数据集为D,计算现有特征对该数据集的基尼指数。此时,对每一个特征A,对其可能取的每个值a,根据样本点A=a的测试为“是”或“否”将D分割为D1和D2两部分,利用上式Gini(D,A)来计算A=a时的基尼指数。

Step2:在所有可能的特征A以及他们所有可能的切分点a中,选择基尼指数最小的特征及其对应可能的切分点作为最优特征与最优切分点。依最优特征与最有切分点,从现结点生成两个子节点,将训练数据集依特征分配到两个子节点中去。

Step3:对两个子结点递归地调用Step1、Step2,直至满足条件。

Step4:生成CART决策树

算法停止计算的条件是节点中的样本个数小于预定阈值,或样本集的基尼指数小于预定阈值,或者没有更多特征。

下面用算例说明怎么应用此公式进行计算。

  • 数据在这里插入图片描述
            首先计算各特征的基尼指数,选择最优特征及其最优切分点。分别以 A 1 A_1 A 2 A_2 A 3 A_3 A 4 A_4 表示年龄、有工作、有自己的房子和信贷情况4个特征,并以1,2,3分别表示年龄的值为青年、中年、老年;以1,2表示有工作和有房子的值为是和否;以1,2,3表示信贷值为非常好、好、一般。
        
发布了43 篇原创文章 · 获赞 28 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xiaoxiaoliluo917/article/details/92831419
今日推荐