机器学习笔记之九——决策树原理以及举例计算

  决策树是机器学习最基本的算法之一,它本身作为一颗树而言,十分简单。

  就是将特征属性放在结点的未知,按照特征属性将样本分类,放在左子树和右子树。

  而在左子树和右子树,继续使用其他的特征属性作为结点,向下分类。

  学习决策树复杂的部分在于,如何最优的选择特征属性作为结点,以及生成决策树后的优化策略。

  下面就进入第一个问题,如何最优的选择特征属性作为结点,下面引入的的信息熵、条件熵、信息增益都是为了解决这个问题。

一、如何最优的选择特征属性作为结点

信息熵

    意义:信息熵用来描述系统信息量的不确定度。即 信息熵越大,表示随机变量越是均匀分布;信息熵越小,随机变量的取值差距越大。

    公式:H(Entropy)   =       \sum_{i=1}^n P(i)*log_{2}P(i)        ,n为样本label的类别数,P(i)为样本发生的概率。

                   

条件熵      

    给定X的条件下,随机变量Y的信息熵就叫做条件熵。

   

    公式:  H(Y|X) = \sum_{j=1}P(x=v_j)*H(Y|X=v_j)

 

熵在数据集中表现为:信息熵是对label直接求熵,而条件熵则是在 某个特征的所有取值情况下的 信息熵 的数学期望。

 

信息增益

     作用:在决策树中,作为衡量特征重要性的指标,其他还有Gini系数、错误率等。

     公式:Gain(D,a) = H(Y) -H(Y|X)    即信息熵减去该特征的条件熵。

   西瓜书中的表示: Gai(D,a) = Ent(D) - \sum_{v=1} \frac{|D^v|}{D}*Ent(D^v),这里的Ent(D)就是H(Y),D为label数量,Dv为lablel中某一类别的数量,这个公式应该更好理解一些。

 

现在我们有了信息增益这个值作为判断特征好坏的指标,那么就可以用它来构建决策树了。

值得一提的是,根据信息增益构建的决策树,我们可以给它一个特有的指标:

   loss = \sum_{t=1}^{leaf}\frac{|D_t|}{D}*H(t),leaf代表叶子节点的个数。

 

例题

   我们用一个小例题再来熟悉一下这几个指标的计算。

  例题1,根据下列房产、婚姻、年收,判断其对能否还债的重要程度。

 

 

 

生成决策树后的优化策略

  首先,先来了解一下前辈们给决策树们起的名字。

几种决策树算法

  ID3:以上面计算的信息增益作为特征选择标准的决策树,就是ID3决策树。

  它的优点:速度快,实现起来简单。

        缺点:a、计算依赖于特征数量多的(某特征类别多,占比就大)

                   b、不是递增算法。

                  c、不会考虑特征间的关系。

                  d、只适合小规模数据集。

                  f、抗噪性差。

   C4.5 : 与ID3算法本质的差别在于C4.5算法采用的是信息增益率作为选择标准。

         而信息增益率就是信息增益除以特征的信息熵: \frac{Gain(A)}{H(A)}

        C4.5算法使用信息增益率,消除了ID3算法中的第一个缺点,但是其他缺点还是共有的。

 

   CART(分类与回归树):CART使用基尼系数作为特征选择的标准。 (ps:基尼系数一般应用于经济领域,很有意思的东西)

       CART构建的是二叉树,且它的特征会多次使用,以上两种算法一个特征只会在一个结点中使用。

       CART是目前最常用的决策树。

      CART的缺点:小数据集。

                   优点:特征多的时候效果更好一点;可用于回归算法。

 

优化操作——剪枝

    预剪枝:构建树的过程中进行条件限制,造成修剪。(如sklearn中使用max_leaf_nodes、max_depth属性来限制最大叶子结点数、最大深度 )

  后剪枝:构建后,对决策树进行修剪。

  对后剪枝的理解:(1)、以非叶子结点所领衔的子树为对象,将其替换成合理的叶子节点。将修剪后的树用验证集验证,若结果更好,则替换,不好则舍弃。

                              (2)、对所有的非叶子节点进行(1)操作,并交叉验证。

 

优化操作——集成树

         一个决策树的能力往往是十分弱小的,但是我们可以采取多种树集成的方式,将弱决策树联合起来,构成一个强决策森林,而集成的方式,我们称之为集成学习。

          集成学习,下一节再来记录。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值