决策树算法介绍(ID3算法和CART算法)

文章目录

  • 一、ID3算法
  • 二、CART算法


一、ID3算法

信息熵:加入当前样本集D中第K类样本所占的比例为Pk(k=1,2…|K|),K为类别的总数(对于二元分类来说,K=2),则样本集的信息熵为:
决策树算法介绍(ID3算法和CART算法)_第1张图片
Ent(D)的值越小,则D的纯度越高。

信息增益:是由两个熵相减得来的,是由经过特征分裂后的熵减去分裂前结点的熵。
假定离散属性a有V个可能的取值{a1,a2,…av},如果使用特征a来对数据集D进行划分,则会产生V个分支结点,其中第v个结点包含了数据集D中所有在特征a上取值为av的样本总数,记为Dv。
因此可以根据上面信息熵的公式计算出信息增益熵,再考虑到不同的分支结点所包含的样本数量不同,给分支节点赋予权重,即样本数越多的分支节点的影响越大,因此,能够计算出特征a对样本集D进行划分所获得的“信息增益”:
决策树算法介绍(ID3算法和CART算法)_第2张图片
信息增益越大,表示使用特征a对数据集划分所获得的“纯度提升”越大。
信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性。

优点
1.假设空间包含所有的决策树,搜索空间完整。
2.健壮性好,不受噪声影响。
3.可以训练缺少属性值的实例

缺点
1.ID3只考虑分类型的特征,没有考虑连续特征
2.ID3算法对于缺失值没有进行考虑。
3.没有考虑过拟合
4.ID3 仅仅适用于二分类问题。ID3 仅仅能够处理离散属性。
划分过程会由于子集规模过小而造成统计特征不充分而停止。

ID3算法过程

创建Root结点
如果Example都为正,
    那么返回label=正的单节点数Root
如果Example都为副,
    那么返回label=副的单节点数Root
如果Attribute为空,
    那么返回Root,label=Example中最普遍的Target_attribute的值。
否则
    A←Atrribute中分类Eaxmples能力最好的属性(*)
    Root的决策属性←A
    对于A的每个可能值Vi
        在Root下加一个新的分支对应测试A=Vi
        令Examplevi为Examples满足A属性值为Vi的子集
        如果Example为空
            在新分支下,加一个叶子节点,
            结点label=example中最普遍的Target_attribute值。
        否则
            在新分支下,加一个ID3的子树(包含所有满足的样例,所有标签,但是特征数-1)。
    结束
返回Root

决策树算法介绍(ID3算法和CART算法)_第3张图片
决策树算法介绍(ID3算法和CART算法)_第4张图片
决策树算法介绍(ID3算法和CART算法)_第5张图片
纹理的信息增益最大,划分为属性,推出:
决策树算法介绍(ID3算法和CART算法)_第6张图片

重复上面步骤,对上面第一个分支点(清晰)进行划分。
决策树算法介绍(ID3算法和CART算法)_第7张图片

二、CART算法

CART 的全称是分类与回归树。CART 既可以用于分类问题,也可以用于回归问题。

Gini指数
表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。
分类问题中,假设有K个类,样本点属于第k类的概率为Pk,则概率分布的基尼指数定义为:
决策树算法介绍(ID3算法和CART算法)_第8张图片
Pk表示选中的样本属于k类别的概率,则这个样本被分错的概率为(1-Pk)。
对于给定样本D,基尼指数为:
决策树算法介绍(ID3算法和CART算法)_第9张图片
Ck是D中属于第k类的样本自己,k是类的个数。
在特征A的条件下,集合D的基尼指数为:
在这里插入图片描述
基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经A=a分割后集合D的不确定性。

Gini 指数 vs 熵
1.Gini 指数的计算不需要对数运算,更加高效
2.Gini 指数更偏向于连续属性,熵更偏向于离散属性。

你可能感兴趣的:(决策树,算法,机器学习)