决策树模型在监督学习中非常常见,可用于分类(二分类、多分类)和回归。一般而言,一棵“完全生长”的决策树包含:特征选择、决策树构建、剪枝三个过程。
一、决策树的优点和缺点
优点:
- 决策树算法中学习简单的决策规则建立决策树模型的过程非常容易理解
- 决策树模型可以可视化,非常直观
- 应用范围广,可用于分类和回归,而且非常容易做多类别的分类
- 能够处理数值型和连续的样本特征
缺点:
- 容易在训练数据中生成复杂的树结构,造成过拟合。剪枝可以缓解过拟合的副作用,常用方法使限制树的高度、叶子节点的最少样本数量。
- 学习一棵最优的决策树被认为是NP问题。实际中的决策树是基于启发式的贪心算法建立的,不能保证建立全局最优的决策树。Random Forest引入随机能缓解这个问题。
二、ID3算法
ID3由Ross Quinlan在1986年提出。ID3决策树可以有多个分支,但是不能处理特征值为连续值得情况。决策树是一种贪心算法,每次根据“最大信息熵增益”选取当前最佳的特征来分割数据,并按照该特征的所有取值来切分,并不关系整体是否达到最优。ID3算法十分简单,核心是根据“最大信息熵增益”原则选择划分当前数据集的最好特征,在建立决策树的过程中,根据特征属性划分数据,使得原本“混乱”的数据的熵减少。
三、C4.5算法
C4.5是Ross Quinlan在1993年在ID3的基础上改进而提出的。ID3采用的信息增益准则对可取值数目较多的属性有所偏好(因为属性值较多的Feature会有相对较大的信息增益),为减少这种偏好可能带来的不利影响(决策树的繁华性能差,例如以编号划分数据得到的决策树不具有泛化能力),C4.5采用“增益率”(gain ratio)来选择最优划分属性。增益率通过引入属性a的“固有值”(instrinsic value)来惩罚取值较多的属性a。除此之外,C4.5还弥补了ID3中不能处理特征属性值连续的问题(采用二分法实现连续属性离散化),但是,对连续属性值需要扫描排序,会降低C4.5的性能。最后,C4.5还解决了数据集的缺失值问题。
四、CART算法
CART(Classification and Regression tree)分类回归树由L.Breiman, J.Friedman, R.Olshenhe C.Stone
于1984年提出。ID3中根据属性值分割数据,之后该特征不会再起作用,这种快速分割的方式会影响算法的准确率。CART是一棵二叉树,采用二元切分法,每次把数据切成两份,分别进入左子树、右子树。相比ID3和C4.5,CART应用要多一些,既可以用于分类也可以用于回归。CART用于分类时,使用基尼指数(Gini)来选择最好的数据分割的特征,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此,Gini(D)越小,则数据集D的纯度越高:
属性a的基尼指数定义: