(一)实例:使用ID3算法给出“好苹果”的决策树
(二)决策树的工作原理
我们在做决策树的时候,会经历两个阶段:构造和剪枝。
构造原理——构造的过程就是选择什么属性作为节点的过程,构造过程中,存在三种节点:
1、根节点:就是树的最顶端,最开始的那个节点;
2、内部节点:就是树中间的那些节点;
3、叶节点:就是树最底部的节点,也就是决策结果。
因此,在构造过程中,我们要解决三个问题:
1、选择哪个属性作为根节点?
2、选择哪些属性作为子节点?
3、什么时候停止并得到目标状态,即叶节点。
剪枝原理——剪枝就是给决策树瘦身,这一步想实现的目标就是,不需要太多的判断,同样可以得到不错的结果。之所以这么做,是为了防止“过拟合”(Overfitting)现象的发生。
“过拟合”是指模型的训练结果“太好了”,以至于在实际应用的过程中,会存在“死板”的情况,导致分类错误。欠拟合,和过拟合就好比是下面这张图中的第一个和第三个情况一样。
剪枝的具体方法有预剪枝和后剪枝两种。
预剪枝:是在决策树构造时就进行剪枝。
方法是:在构造的过程中对节点进行评估,如果对某个节点进行划分,在验证集中不能带来准确性的提升,那么对这个节点进行划分就没有意义,这时就会把当前节点作为叶节点,不对其进行划分。
后剪枝就是在生成决策树之后再进行剪枝,通常会从决策树的叶节点开始,逐层向上对每个节点进行评估。如果剪掉这个节点子树,与保留该节点子树在分类准确性上差别不大,或者剪掉该节点子树,能在验证集中带来准确性的提升,那么就可以把该节点子树进行剪枝。
方法是:用这个节点子树的叶子节点来替代该节点,类标记为这个节点子树中最频繁的那个类。
(三)实战
纯度:你可以把决策树的构造过程理解成为寻找纯净划分的过程。数学上,我们可以用纯度来表示,纯度换一种方式来解释就是让目标变量的分歧最小。
信息熵:表示了信息的不确定度,当不确定性越大时,它所包含的信息量也就越大,信息熵也就越高。p(i|t) 代表了节点 t 为分类 i 的概率。
两者之间的关系:信息熵越大,纯度越低。当集合中的所有样本均匀混合时,信息熵最大,纯度最低。
我们在构造决策树的时候,会基于纯度来构建。而经典的 “不纯度”的指标有三种,分别是信息增益(ID3 算法)、信息增益率(C4.5 算法)以及基尼指数(Cart 算法)。
ID3 算法计算的是信息增益,信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲节点的信息熵减去所有子节点的信息熵。在计算的过程中,我们会计算每个子节点的归一化信息熵,即按照每个子节点在父节点中出现的概率,来计算这些子节点的信息熵。所以信息增益的公式可以表示为:
公式中 D 是父亲节点,Di 是子节点,Gain(D,a) 中的 a 作为 D 节点的属性选择。
分析步骤:
(1)将苹果红不红作为属性划分,即表示为Gain(D,是否红),会有两个叶子节点D1,D2,分别对应的是红和不红。我们用+代表是个好苹果,-代表不是个好苹果,那么
D1(红)={1+,2+}
D2(不红) ={3-&#x