概述
决策树的思想在二十世纪九十年代被提出(1984年提出的CART算法,1986年的ID3算法和1993年的C4.5算法)。
决策树用于分类和回归任务,优势在于便于理解,且分类速度快。
一、决策树
1、一颗决策树的示意如下:
决策树包含了结点和有向边,结点分内结点和叶节点两种:
- 内结点表示某个特征,判断该特征是否满足有向边的条件;
- 叶节点表示某个类,不同的叶节点有可能是表示同一类的。
2、决策树的分类过程
从根节点的特征开始,对测试样本的根节点特征进行判断,根据判断的结果,测试样本被分到某个子节点;继续根据子节点的特征去分类测试样本,直至测试样本到达叶节点,叶节点对应的类即为分类结果。
二、特征选择
特征选择的目的在于选取出当下对训练数据有良好分类能力的特征,或是丢弃不具备分类能力的特征。
特征选择的标准一般是信息增益或信息增益比。
信息增益反映了使用一个特征去划分数据集,使数据集分类的不确定性减少的程度。信息增益比则在信息增益的基础上,解决了对取值较多的特征的偏向性。因此如果一个特征有着较大的信息增益/信息增益比,我们就认为这个特征有良好的分类能力,在进行特征选择时,挑出有着最大信息增益/信息增益比的特征。
要理解信息增益,先从熵、条件熵开始理解。
1、熵
熵衡量了一个概率分布的不确定性程度,熵越大,说明不确定性越大。
假设一个取有限值的离散随机变量X服从概率分布,
,则随机变量X的熵定义为:
熵只依赖于X的分布(也就是只管每个值发生的概率,而不管这个值具体是多少)。
2、条件熵
设随机变量(X,Y)符合联合概率分布:
, 其中
则给定X的条件下,Y的不确定性用条件熵表示:
3.信息增益
信息增益表示在已知X的情况下,Y的不确定性减少的程度,也即:
在决策树中,X相当于特征,Y相当于训练集中的类,信息增益衡量的是给定特征A的条件下,训练集D分类的不确定性减少的程度,也即:
4.信息增益比
由熵的定义可以知道,信息增益容易受到有较多取值的特征的影响。
信息增益比为了消除这个影响,用信息增益除以训练集D关于特征A的熵:
三、决策树的生成
决策树的生成就是根据特征选择的标准(如信息增益、信息增益比等),找到合适的特征作为树的结点,并对其子节点递归进行上述过程,直至没有特征可以选择或者特征选择标准没有达到设定阈值为止。
决策树的生成其实是一个寻找局部最优解的过程,开始时将整个训练集放在决策树的根节点,以某种特征选择的标准选出一个最优特征,使得用这个最优特征划分训练集得到的子集在当下有着最好的分类。不断重复该划分过程,就能得到一棵在训练集上拟合地很好的决策树。
决策树生成算法之间的主要区别就在于特征选择的标准。ID3用信息增益做特征选择,生成过程中选择信息增益最大的特征;C4.5用信息增益比做特征选择,生成过程中选择信息增益比最大的特征;CART的决策树是二叉树,用基尼指数最小化做特征选择。
四、决策树的剪枝
决策树的生成只意味着找到了能很好地拟合训练集的树,但我们更想要的是一个有着很好泛化能力的树(也即在未知数据上表现良好的树),因此需要对决策树自下而上进行剪枝。剪枝就是让复杂的树简单化,从而缓解过拟合,提高决策树的泛化能力。剪枝的目的是一个找全局最优解。
剪枝的手段一般是最小化损失函数:
将一组叶节点回缩到其父结点(也就是将叶结点的样本都放到父结点中去),如果回缩后的决策树损失函数比回缩前的要小,就进行剪枝(也就是回缩,将父结点作为新的叶结点)。递归地进行上述过程,直至无法找到能使损失函数变小的回缩为止。
参考:
李航《统计学习方法(第2版)》