决策树是机器学习最基本的算法之一,它本身作为一颗树而言,十分简单。
就是将特征属性放在结点的未知,按照特征属性将样本分类,放在左子树和右子树。
而在左子树和右子树,继续使用其他的特征属性作为结点,向下分类。
学习决策树复杂的部分在于,如何最优的选择特征属性作为结点,以及生成决策树后的优化策略。
下面就进入第一个问题,如何最优的选择特征属性作为结点,下面引入的的信息熵、条件熵、信息增益都是为了解决这个问题。
一、如何最优的选择特征属性作为结点
信息熵
意义:信息熵用来描述系统信息量的不确定度。即 信息熵越大,表示随机变量越是均匀分布;信息熵越小,随机变量的取值差距越大。
公式: = ,n为样本label的类别数,P(i)为样本发生的概率。
条件熵
给定X的条件下,随机变量Y的信息熵就叫做条件熵。
公式:
熵在数据集中表现为:信息熵是对label直接求熵,而条件熵则是在 某个特征的所有取值情况下的 信息熵 的数学期望。
信息增益
作用:在决策树中,作为衡量特征重要性的指标,其他还有Gini系数、错误率等。
公式: 即信息熵减去该特征的条件熵。
西瓜书中的表示: ,这里的Ent(D)就是H(Y),D为label数量,Dv为lablel中某一类别的数量,这个公式应该更好理解一些。
现在我们有了信息增益这个值作为判断特征好坏的指标,那么就可以用它来构建决策树了。
值得一提的是,根据信息增益构建的决策树,我们可以给它一个特有的指标:
,leaf代表叶子节点的个数。
例题
我们用一个小例题再来熟悉一下这几个指标的计算。
例题1,根据下列房产、婚姻、年收,判断其对能否还债的重要程度。
生成决策树后的优化策略
首先,先来了解一下前辈们给决策树们起的名字。
几种决策树算法
ID3:以上面计算的信息增益作为特征选择标准的决策树,就是ID3决策树。
它的优点:速度快,实现起来简单。
缺点:a、计算依赖于特征数量多的(某特征类别多,占比就大)
b、不是递增算法。
c、不会考虑特征间的关系。
d、只适合小规模数据集。
f、抗噪性差。
C4.5 : 与ID3算法本质的差别在于C4.5算法采用的是信息增益率作为选择标准。
而信息增益率就是信息增益除以特征的信息熵:
C4.5算法使用信息增益率,消除了ID3算法中的第一个缺点,但是其他缺点还是共有的。
CART(分类与回归树):CART使用基尼系数作为特征选择的标准。 (ps:基尼系数一般应用于经济领域,很有意思的东西)
CART构建的是二叉树,且它的特征会多次使用,以上两种算法一个特征只会在一个结点中使用。
CART是目前最常用的决策树。
CART的缺点:小数据集。
优点:特征多的时候效果更好一点;可用于回归算法。
优化操作——剪枝
预剪枝:构建树的过程中进行条件限制,造成修剪。(如sklearn中使用max_leaf_nodes、max_depth属性来限制最大叶子结点数、最大深度 )
后剪枝:构建后,对决策树进行修剪。
对后剪枝的理解:(1)、以非叶子结点所领衔的子树为对象,将其替换成合理的叶子节点。将修剪后的树用验证集验证,若结果更好,则替换,不好则舍弃。
(2)、对所有的非叶子节点进行(1)操作,并交叉验证。
优化操作——集成树
一个决策树的能力往往是十分弱小的,但是我们可以采取多种树集成的方式,将弱决策树联合起来,构成一个强决策森林,而集成的方式,我们称之为集成学习。
集成学习,下一节再来记录。