决策树—ID3、C4.5、CART

目录

一、决策树模型与学习

1、决策树模型

2、决策树学习    

二、特征选择

1、信息增益

2、信息增益率

三、决策树的生成

1、ID3算法

2、C4.5算法

3、CART算法

四、决策树停止分裂的条件

五、连续值和损失值处理


决策树(decision tree)是一种基本的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程,可以认为是if-then规则的集合, 也可以认为是定义在特征空间与类空间上的条件概率分布。主要优点是 模型具有可读性,分类速度快学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类

决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。

一、决策树模型与学习

1、决策树模型

定义: 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点(node)和有向边(directed edge)组成。节点有两种类型:内部节点和叶节点。内部节点表示一个特征或属性,叶节点表示一个类。

用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子结点;这时,每一个子结点对应着该特征的一个取值。如此递归的对实例进行测试并分类,直至达到叶节点。最后将实例分到叶结点的类中。
如图是一个决策树示意图,图中圆和方框分别表示内部结点和叶结点:

                                                              

2、决策树学习    

决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的决策树(即能对训练数据进行正确分类的决策树)可能有多个,也可能一个也没有。我们需要一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。
决策树学习的损失函数通常是 正则化的极大似然函数 。
决策树学习的目标是 以损失函数为目标函数的最小化 。

决策树学习的算法通常是一个 递归的选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类过程。开始,构建根结点,将所有训练数据都放在根结点。选择一个最优特征,按照这个特征将训练数据集分割成子集,使得各个子集有一个在当前条件下最好的分类。如果这些子集已经能够被基本正确分类,那么构建叶结点,并将这些子集分到所对应的叶结点中去;如果还有子集不能被基本正确分类,那么就对这些子集选择新的最优特征,继续对其进行分割,构建相应的结点。如此递归的进行下去,直至所有训练数据子集被基本正确分类,或者没有合适的特征为止。最后每个子集都被分到叶结点上,即有了明确的类。这就生成一颗决策树。
以上方法生成的决策树可能对训练数据有很好的分类能力,但对未知的测试数据可能过拟合。需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使它具有更好的泛化能力。具体的就是去掉过于细分的叶结点,使其退回到父结点,甚至更高的结点,然后将其改为新的叶结点。
若特征较多,在决策树学习开始的时候,对 特征进行选择,只留下对训练数据有足够分类能力的特征。
决策树的生成只考虑局部最优
决策树的剪枝只考虑全局最优

二、特征选择

特征选择在于选取对训练数据具有分类能力的特征,可以提高决策树学习的效率。通常特征选择的准则是信息增益或信息增益率
特征选择的划分依据:这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就应该选择这个特征。(将数据集划分为纯度更高,不确定性更小的子集的过程。)

如果属性是连续型,可以确定一个值作为分裂点splitPoint,按照大于splitPoint和小于等于splitPoint生成两个分支。

决策树量化纯度:

决策树的构建是基于样本概率和纯度进行构建操作的,判断数据集“纯”的指标有三个:Gini指数、熵、错误率。三个公式的值越小,说明越“纯”,实践证明这三个公式效果相似,一般采用熵。

决策树算法的停止条件:

决策树的构建过程是一个递归过程,所以必须给定停止条件,否则过程将不会停止,一般的停止条件有两种:

    1. 当每个子节点只有一种类型的时候停止。
    1. 当前节点中记录数小于某个阈值,同时迭代次数达到给定值时,停止构建,此时使用max(p(i))作为节点的对应类型。
      方式一可能会使树的节点过多,产生过拟合等问题。一般采用第二种方法。

1、信息增益

(1)信息熵:

在信息论和概率统计中,熵(entropy) 是表示随机变量不确定性的度量(纯度)。是用来衡量一个随机变量出现的期望值。如果信息的不确定性越大,熵的值也就越大,出现的各种情况也就越多。 假设随机变量X的可能取值有x1,x2...,xn,对于每一个可能的取值xi,其概率 P(X=xi) = pi , ( i = 1,2, ... , n)
因此随机变量X的熵:

                                                            H(x) = -\sum_{i=1}^{n}p_ilog_2p_i
由定义可知,熵只依赖于X的分布,而与X的取值无关
对于样本集合D来说,随机变量X是样本的类别,即,假设样本有k个类别,每个类别的概率是\frac{|C_k|}{|D|},其中|Ck|表示类别k的样本个数,|D|表示样本总数,则对于样本集合D来说熵(经验熵)为:

                                                        H(D) = -\sum_{k=1}^{K} \frac{|C_k|}{|D|}log_2 \frac{|C_k|}{|D|}

(2)条件熵

假设有随机变量(X,Y),其联合概率分布为:P(X=xi,Y=yj)=pij,i=1,2,⋯,n;j=1,2,⋯,m
则条件熵(H(Y∣X))表示在已知随机变量X的条件下随机变量Y的不确定性,其定义为X在给定条件下Y的条件概率分布的熵对X的数学期望:
entropy(D,A) = \sum_{i=1}^k \frac {D_{A_i}}{D} log_2D_{A_i}
当嫡和条件嫡中的概率由数据估计(特别是极大似然估计)得到时,所对应的嫡与条件嫡分别称为经验熵( empirical entropy)和经验条件嫡(empirical conditional entropy )。

信息增益:

定义: 特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:

  • 31
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
决策树是一种常用的机器学习算法,用于解决分类和回归问题。其中,ID3C4.5和CART决策树的三种常见算法。 1. ID3算法(Iterative Dichotomiser 3): ID3算法是一种基于信息增益的决策树算法。它通过选择具有最大信息增益的特征来构建决策树。具体步骤如下: - 计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 2. C4.5算法: C4.5算法是ID3算法的改进版本,它使用信息增益比来选择划分特征。相比于ID3算法,C4.5算法考虑了特征取值的多样性,能够处理连续型特征。具体步骤如下: - 计算每个特征的信息增益比,选择信息增益比最大的特征作为当前节点的划分特征。 - 根据划分特征的取值将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者没有更多特征可供选择。 3. CART算法(Classification and Regression Trees): CART算法是一种用于分类和回归的决策树算法。它通过选择最优的划分特征和划分点来构建决策树。具体步骤如下: - 选择最优的划分特征和划分点,使得划分后的子集纯度最高(分类问题)或者方差最小(回归问题)。 - 根据划分特征和划分点将数据集分成多个子集。 - 对每个子集递归地应用上述步骤,构建子树。 - 直到满足终止条件,如所有样本属于同一类别或者达到预定的树深度。 对于代码实现,由于篇幅限制无法提供完整代码,但你可以在各种编程语言中找到相关的开源实现。你可以搜索相关的库或者参考机器学习教材中的示例代码来了解具体实现细节。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值