机器学习算法-决策树

一、决策树简介

        决策树是一种分类与回归的方法,它以树形结构的形式进行呈现,可以认为是if-then规则的集合,也可以认为是特征空间与类空间上的条件概率分布。

二、如何理解决策树?

        我们大部分人都有过租房子的经历,那你是怎么决定要租一个房子的呢?我们一般判断是否需要租一个房子,影响的因素有:房子的位置、价格和装修。具体点来说,我只会选择离公司近的房子,比如说5公里内或者通勤时间在40分钟内的。其次是价格,如果价格便宜,不管装修好不好我都会租下来,如果价格贵的话,我就要看装修情况了,如果装修好就租,如果装修不好就不租了。

        这就是一颗典型的决策树:对于租房子这个事情,我根据房子的距离、价格和装修这几个条件进行判断,决定要不要租下这个房子,下图就是这颗决策树的示意图。

        我们看到,决策树就是一种树形结构的算法,上边的节点代表着算法的某一个特征(如价格、距离),节点上可能存在多个分支,每个分支代表着这个特征的不同种类(如距离近、距离远),最后的叶子节点代表最终的决策结果(如租、不租)。

三、决策树涉及的基本概念

        节点:决策树由许多节点组成,其中分为两种类型:内部节点和叶子节点。内部节点表示某个特征,而叶子节点表示某个类别或回归值;

       分支:每个内部节点连接着一些分支,每个分支代表着某个特征取值,表示样本在该特征上的取值;

        根节点:决策树的根节点是整棵树的起点,即第一个判断特征的节点;

        决策规则:决策树的每个节点表示一条决策规则,即对某个特征的判断,其决策规则是由已知数据集计算而得的。

四、一颗决策树的生成

        我们知道了决策树的形式和原理之后,接下来我们看一下决策树的生成过程。

        决策树的生成过程包括三个部分:特征选择、决策树生成和决策树剪枝。

        下面,我们还是拿上边租房子的例子来说决策树的生成过程。假设现在有如下条件的房子:距离远、价格不贵、装修高,根据上边定的规则,你觉得我会不会租这个房子呢?

        我们先看距离,因为这个房子距离公司远,根据上线的决策树,我们得出的结论是:不租。但是,假设我们的决策树不是用距离作为根节点,而是用价格作为根节点,结果会不会不一样呢?以价格为根节点的决策树的结果如下图所示。

        我们发现这颗决策树“变大”了好多,判断这个房子是否租住的古城就变成了:先看价格,再看装修,最后看距离。但是即使决策树的结构发生了变化,我们还是得到以前的结论:不租。所以,决策树的构造只会影响算法的复杂度和计算时间,不会影响决策结果的。因此,在实际工作中,我们就需要优化决策树的结构,当他的效率更高,但应该怎么做呢?

1、基本概念

        在进行特征选择时,我们需要了解以下概念:

        ①信息熵:信息熵是描述信息源各可能事件发生的不确定性的数学量。它借鉴了热力学的概念,用来度量信息的平均量,通常用于描述信息的不确定性或混乱程度。在机器学习中,信息熵是用来衡量一个节点内信息的不确定性。一个系统中信息熵越大,这个系统的不确定性就越大,样本就越多样,你也可以理解为样本的纯度就越低,而信息熵越小,系统的不确定性就越小,样本越趋于一致,样本的纯度就越高,信息熵的计算过程如下:

        ②条件熵:是一个用于描述在给定随机变量 (X) 的条件下,另一个随机变量 (Y) 的不确定性。在机器学习和信息论中,条件熵是一个重要概念,它有助于我们理解当知道某个变量 (X) 的值时,另一个变量 (Y) 的不确定性会减少多少,条件熵的计算公式如下:

        ③信息增益:表示引入某个特征后,数据分类不确定性减少的程度,通过比较某个特征出现前后系统熵的变化来计算的,即该特征能够为系统带来多少“增益”的信息,信息增益的计算公式如下图所示:

        ④信息增益比:有时候以信息增益来划分训练数据集的特征,会存在偏向于选择取值较多的特征问题,使用信息增益比可以对这一个问题进行校正,成文一种更加权衡的选择标准。

        ⑤基尼系数:表示样本集合中一个随机选中的样本被分错的概率

        设有K个分类,样本属于第k类的概率是pk:

        基尼指数和信息增益、信息增益比一样,都近似代表分类误差率。

2、特征选择

        特征选择是决策树学习中的第一步,它涉及从数据集中众多特征中选择一个最具信息量的特征作为节点分裂的依据。特征选择的目的是找到一个特征,使得基于该特征的数据分割能够最大化类别的分离度,即让分割后的数据子集尽可能地纯净,包含同一类别的样本尽可能多,不同类别的样本尽可能少。

        根据特征选择的不同,决策树算法有很多种,最典型的三种分别是:ID3(迭代二叉树3代)、C4.5和CART(分类与回归树)。

        ID3是最初代的决策树算法,它对特征值的选择采用的计算指标是信息增益,就是在决策树各个节点上使用信息增益作为选择特征的准则,使用递归方法构建决策树。我们在构建决策树的时候,希望决策树在每次划分的时候,每个条件分支都能够最大化的去划分这些样本,让每个节点的信息熵最低,样本一致性更高。所以,决策树会计算每一个特征划分后样本的“纯度”,纯度越高的特征越接近根节点。这样一来,决策树的复杂度和计算机时间肯定就会较少,也就不会出现我们刚才说的那种“很大”的决策树。

         C4.5是在ID3基础上改进后的算法,ID3算法生成树有一个缺点,就是容易过拟合,并且避免决策树偏向选择取值较多的特征而C4.5对特征值选择采用的计算指标是信息增益比。在选择根节点时,选择信息增益比最大的属性作为根节点,

        CART分类与回归树,做分类问题时使用Gini系数,选择Gini系数最大的节点作为根节点,做回归问题的时候使用的是偏差值,CART算法是目前应用最广泛的决策树算法。

       ID3、C4.5和CART算法的优缺点如下表所示:

3、决策树生成

        决策树的生成是基于特征选择的结果,递归地构建树的过程。从根节点开始,使用特征选择得到的最佳特征对数据集进行分割,然后对分割后的每个子集重复这一过程,继续寻找子集中的最佳特征进行进一步的分割,直到满足停止条件,比如子集中的样本全部属于同一类别、没有更多特征可供选择或者达到了预设的最大深度。这个过程中,每个内部节点代表了一个特征的测试,而每个分支代表测试的一个结果,叶节点则代表最终的决策或预测结果。

4、决策树剪枝

       因为决策树很容易出现过拟合, 为了解决过拟合问题而引入了剪枝操作。过拟合意味着决策树过于复杂,对训练数据的噪声过于敏感,导致模型在未知数据上的泛化能力下降。剪枝通过移除或合并一些节点来简化决策树的结构,减少树的复杂度。

        剪枝可以是预剪枝,即在生成过程中提前停止树的生长;也可以是后剪枝,即先生成一个完整的树,然后自底向上地剪除对整体性能没有贡献或贡献很小的分支。剪枝的目的是找到一棵既能很好地拟合训练数据,又具有较强泛化能力的决策树。

五、决策树应用场景

        决策树可以应用于以下场景:

        1、分类问题:决策树算法可以用于解决分类问题,例如根据一组特征将实例分为不同的类别。它在垃圾邮件过滤、疾病诊断、客户分类等领域都有应用。
        2、回归问题:决策树算法也可以用于解决回归问题,例如根据一组特征预测一个连续的数值。它在房价预测、销量预测等领域可以发挥作用。
        3、特征选择:决策树算法可以通过特征选择的方式确定哪些特征对于解决问题是最重要的。通过分析决策树的结构和特征重要性,可以帮助我们理解数据集并选择最相关的特征。
        4、缺失值处理:决策树算法可以有效地处理带有缺失值的数据集。在决策树的构建过程中,可以根据可用的特征进行分割,从而处理缺失值问题。
        5、异常检测:决策树算法可以用于检测异常值。通过构建决策树,可以将异常值划分为与正常值不同的分支,从而帮助我们发现异常情况。
        6、推荐系统:决策树算法可以用于构建个性化的推荐系统。通过分析用户的特征和历史行为,决策树可以推断出用户的兴趣和偏好,进而提供个性化的推荐内容。

六、决策树的优缺点

        决策树优点:由于具有树形结构,决策树的解释性很强,直观好理解,而且还可以从结果向上去追溯原因。

        决策树的缺点:当数据量大,数据维度很多的时候,决策树会变的非常复杂,训练时间会很久,另外决策树的深度需要手动设置,如果设置的不合理,就很可能造成欠拟合或者过拟合的情况。

  • 13
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值