本文摘抄自《机器学习》一书,作者:周志华
-
决策树
决策树是基于树结构来进行决策的,决策过程中提出的每个判定问题都是对某个属性的“测试”。一棵决策树包含了一个根结点、若干个内部结点和若干个叶结点。叶结点对应于决策结果,其它每个结点对应于一个属性测试。每个结点包含的样本集合根据属性测试的结果被划分到子结点中。根结点包含样本全集。决策树算法流程如下图所示:
-
信息增益(ID3)
显然决策树的生成是一个递归过程。从上图可以看出,决策树学习的关键是如何选择最优划分属性。我们希望决策树的分支结点所包含的样本尽可能的属于同一类别,即结点的纯度越来越高。我们使用信息论中的信息增益这一指标进行度量。假定当前样本集合D中第k类样本所占的比例为,则D的信息熵定义为:
的值越小,则D的纯度越高。
假定离散属性a有V个可能的取值,若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在a上取值为的样本,记为。我们可计算出的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的信息增益:
一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大。因此可用信息增益来进行决策树的划分属性选择。(举例计算见书P75)
-
增益率(C4.5)
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,我们不直接使用信息增益,而是使用“增益率”来选择最优划分属性。增益率定义为:
其中:
需要注意的是,增益率准则对可取值数目较少的属性有所偏好。因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
-
基尼指数
CART决策树(分类和回归任务都可用)使用“基尼指数”来选择划分属性。数据集D的纯度可用基尼值来度量:
直观来说,基尼值反应了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此基尼值越小,则数据集D的纯度越高。属性a的基尼指数定义为:
因此我们选择基尼指数最小的属性作为最优划分属性。
-
剪枝处理
剪枝是决策树学习算法对付过拟合的主要手段。主要包括预剪枝和后剪枝。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上的对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。