本篇笔记主要介绍决策树的ID3,C4.5,C5.0,CART等常用算法,然后讨论决策树的集成学习,包括袋装法,提升法,随机森林,GBDT,AdaBoost等算法。
一、决策树
分支处理
对于一个决策树的构建,最重要的是分支处理,即决定在每个决策节点处的分支属性。下面是一些常用决策树算法。
1、ID3
具体的算法可以参考https://www.cnblogs.com/feiyumo/p/9284490.html
ID3算法计算分支属性对于样本集分类好坏程度的度量------信息增益
在决策树的构建中,会出现使用所有的属性进行分支之后,类别不同的样本仍然存在于同一个叶子节点中,除此之外,当达到了限制条件而被强制停止构建时,也会出现节点中子样本集存在多种分类的情况,对于这种情况,一般取此节点中子样本集占多数的分类作为节点的节点的分类。
缺点:在ID3算法中,往往选择取值比较多的分支属性。
2、C4.5
总体上与ID3思路相同,区别在于分支上的处理。
C4.5引入了信息增益率作为度量。其在一定程度上能解决ID3算法存在的选择取值较多的分支属性的问题。
3、C5.0
C4.5基础上的商用版本,目的是对含有大量数据的数据集进行分析。
4、CART算法
classification and regression tree 即分类回归树。CART算法采用的是二分循环分割的方法,每次划分都把当前样本集划分为两个子样本集,使决策树中的节点均有两个分支,显然这样就构造了一个二叉树。如果分支属性有多于两个取值,在分裂时会对属性进行组合,选择最佳的两个组合分支。假设某属性有q个可能取值,那么以该属性为分支属性,生成两个分支的分裂方法有(2^(q-1)-1)种。
对于每次新生成的节点,若子样本集的分类不唯一,就进行与跟节点相同的分裂过程。
当CART是分类树时,采用最小的GINI值作为节点分裂的依据;当CART是回归树时,采用样本的最小方差作为节点分裂的依据;
区别和特点:
在确定每个决策节点处的分支属性时