《西瓜书》笔记04:决策树

1. 决策树的划分选择

决策树学习的关键是:如何确定最优划分属性。

我们希望,决策树划分过程中,分支结点所包含的样本尽可能同属一类。即结点的纯度越来越高。分支结点的纯度越高,则熵越小。

对于信息增益,定义为:分支前的熵-分支后的熵。分支后纯度越高,熵越小,减数越小,则差值越大。即信息增益越大,表明分支越好。

对于信息增益率,除以该属性取值的分布熵。也是越大越好。

信息增益,对可取值数目较多的属性有所偏好,取值越多,越趋近于一个结点一个样本,这样熵很小,增益值很大。

为了平衡,除以属性的“固有值”即分布熵。属性可能取值越多,通常该值越大。起到矫正作用。

信息增益率,对可取值较少的属性有所偏好。取值越少,固有值越小,则分母越小,信息增益率越大。

C4.5启发式选择算法:先从候选划分属性中找到信息增益高于平均水平的(小的不包避免除以小分母翻把;大坏的包),再从其中选择信息增益率最大的(抑制里面大坏的)。

2. 基尼指数

基尼值:

这里写图片描述

直观上,可反映从数据集D中随机抽取两个样本,其类别标记不一致的概率。那基尼值越小,则D的纯度越高。

趋势情况,和熵的类似。直接用基尼系数选,则要选最小的。

3. 剪枝

决策树学习算法对付过拟合:剪枝。

剪枝的基本策略:

  • 预剪枝:决策树的生成过程中,对每个结点在划分前后进行估计,若当前结点划分不能带来泛化性能提升,则停止;将当前结点作为叶结点。
  • 后剪枝:先从训练集生成一棵完整的决策树,自底向上对非叶结点考察,若将该结点的子树,替换为叶结点能带来泛化性能提升,则剪枝。

问:如何判断决策树的泛化性能?

答:使用验证集,计算前后的精确度比较。

预剪枝的优缺点:

  • 优:降低了过拟合的风险;减少了树的训练时间和测试时间开销。
  • 缺:有些分支因当前不能提升性能而没有展开,但在其基础上的后续划分可能提高性能。因其乃贪心策略不展开,所以有欠拟合的风险。

后剪枝的优缺点,与上相反。优点是不会欠拟合,泛化性能往往优于预剪枝;缺点是时间开销较大。

此处剪枝的原则,根据验证集的泛化误差,也就是错误率来决定是不是剪枝。

而李航书中讲到此处时,考虑结点的纯度(如熵,如基尼指数),没有验证集,即当前分的越好,每个结点的类别越干净,则熵越小,并考虑子树的结点(正则化)。

这是两种思路。

4. 连续值处理和缺失值处理

4.1 连续值处理:

即对应了CART中的回归树。在连续属性中寻找一个最佳切分属性和切分点。

与离散属性不同,若当前结点划分属性为连续属性,该属性还可以作为后代结点的划分属性。(划分点可以不同)

西瓜书P85页的例子还说明:连续值和离散值可同一个树中,即将连续值看作是可取值为2的一个离散属性即可。将连续值分为+和-两类,即可像离散那样处理。

4.2 缺失值处理

通常意义上,某一列有缺失值,若是离散,以众数代替;若是连续,以均值代替。

P87页的算法,是针对Gain公式进行调整的一种算法。不是通常理解上的缺失值处理。来源于[Quinlan, 1993] C4.5算法的一种处理。

大体上,进行划分属性选择时,每个属性计算时忽略缺失值,但要乘上使用的非缺失值比例。给定划分属性后,若某样本在该属性上的值缺失,则将样本划分到所有子结点,调整样本权值保持为1即可。

5. 多变量决策树

将各个属性看作是一个坐标轴,则d个属性对应的样本,对应着d维空间中的一个点。对样本分类意味着,在这个空间中寻找不同样本之间的分类边界。

决策树形成的分类边界:轴平行。分类边界由若干个与坐标轴平行的分段构成。这使得结果具有较好的可解释性。

《西瓜书》笔记04:决策树_第1张图片

然而如果任务的分类边界较为复杂,必须用很多段才可以凑出来。

《西瓜书》笔记04:决策树_第2张图片

此时决策树相当复杂,进行大量的属性测试,时间开销大。

若可以使用斜的划分边界,那就省事了。

多变量决策树,可实现斜划分,非叶结点不再是某个属性,而是属性的线性组合。与传统单变量决策树不同(为每个非叶结点寻找一个最优划分属性),而是建立一个合适的线性分类器。

《西瓜书》笔记04:决策树_第3张图片

想起当时TSA比赛为何组合属性会有提升?原因在于多加一个组合属性,即空间多一维,而那一维上分类平面可能比较容易划分。

6. 其他

  1. 剪枝对提高决策树的泛化性能影响显著,当数据有噪声时,尤为明显。

  2. 本质上,各种特征选择方法均可用于决策树划分属性选择。

  3. 有一些决策树学习算法可以“增量学习”:在接收到新样本后可对已学得的模型进行调整,不用完全重新学习,主要机制是通过调整分支路径上的划分属性次序,对树进行部分重构。如ID4,ID5R等。增量学习有效降低每次接收到新样本后的训练时间开销,但多步增量学习后的模型,会与基于全部数据学得的模型有较大差别。


补充1:决策树的优缺点:

优点

  • 决策树易于理解和解释。人们在通过解释后都有能力去理解决策树所表达的意义。
  • 对于决策树,数据的准备往往是简单或者是不必要的。其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。
  • 能够同时处理数据型和常规型属性。其他的技术往往要求数据属性的单一。
  • 决策树是一个白盒模型。如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。

缺点

  • 对于那些各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。用平衡的数据训练决策树
  • 决策树的结果可能是不稳定的,因为在数据中一个很小的变化可能导致生成一个完全不同的树,这个问题可以通过使用集成决策树来解决。
  • 实际决策树学习算法是基于启发式算法,如贪婪算法,寻求在每个节点上的局部最优决策。这样的算法不能保证返回全局最优决策树。
  • 有一些概念很难用决策树去很轻易的表达,比如异或。
  • 决策树处理缺失数据时的困难。
  • 过拟合。
  • 忽略数据集中属性之间的相关性。

你可能感兴趣的:(机器学习笔记,决策树,西瓜书,周志华,机器学习)