Chapter2—决策树模型

决策树算法是一类常见的机器学习方法。决策树是以树结构来进行决策的,树的每一个分支决定了示例的某个属性的取值范围,树的叶子节点决定了最终的决策,树的每个结点包含的样本集合根据属性测试的结果被划分到子结点中,根节点包含了样本集合的全集。

1. 基本流程

决策树学习的基本算法:

注意点:
决策树基本算法是一个递归算法,分别有三种情形可以导致递归返回:

  1. 当前节点包含的样本全部属于一个类别,无需划分。将该节点标记为叶节点,并标记类别。

  2. 当前的属性集为空,或是所有样本集在所有属性上取值相同,无法划分。将该节点标记为叶节点,并标记类别为样本集中最多的一个类别。(当前节点的后验分布)

  3. 当前节点包含的样本集为空。将该节点标记为叶节点,并标记其类别其父节点所含样本最多的一个类别。(父节点的先验分布)

2. 划分属性的选择

由上述算法可知,决策树学习的关键在于划分属性的选择策略。一般而言,随着划分的进行,我们希望决策树的分支结点尽量只包含属于同一类的样本。接下来介绍信息熵、信息增益、信息率、基尼系数的概念。

信息熵:纯度,信息熵越小,纯度越高

信息增益:ID3算法。信息增益越大,划分后的纯度越高

注意点:

  • 信息增益=父节点的信息熵 - 划分后的所有子节点的加权信息熵和。
  • 信息增益越大,划分后的节点纯度越大。
  • ID3决策树学习算法选择使用信息增益准则来选择划分属性。
  • 缺点:信息增益准则对可取值数目较多的属性有所偏好(因为属性越多,划分样本集的纯度高的可能性较大),然而这种决策树不具备好的泛化能力(过拟合),无法对新样本进行有效预测,著名的C4.5决策树算法使用信息率来选择最优的划分属性。

信息率:C4.5算法。既保证了划分后的纯度,又保证了一定的泛化能力,

信息率定义为

注意点:

  • 信息率准则偏好属性值少的样本,因此C4.5算法使用了一个启发式算法:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

基尼系数:CART决策树。既可以用于分类,又可以用于回归

基尼值:

基尼系数:
注意点:

  • 基尼值的本质:从数据集中随机抽取两个样本,其类别标签不一致的概率。

3. 剪枝策略

剪枝策略是决策树学习算法对付"过拟合"的主要手段。分为预剪枝后剪枝。在讨论两种剪枝方式之前,我们来谈谈如何衡量泛化性能:

泛化性能:

采用留出法,将数据集分割为训练集和验证集,验证集作为泛化性能的评估。

预剪枝:生成过程中的剪枝,自顶向下

在决策树生成过程中,对每个节点在划分前先进行估计,若当前的划分不能带来决策树泛化性能的提升,则停止划分,并将当前节点标记为叶节点。

后剪枝:生成完毕后的剪枝,自底向上

后剪枝先从训练集中完整的生成一棵决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

4. 连续值处理

对于实值属性,离散的划分是不可能的,此时需要使用连续属性离散化技术,最简单的是二分法

注意点:

  • 划分点的选取原则:选取每一对相邻的连续值的中点作为划分点,测试是否能使得当前的信息增益最大,即其中为属性的最优划分点。
  • 与离散属性不同,若当前结点划分属性为连续属性,该属性还可以作为其后代结点的划分属性。

5. 缺失值的处理

在现实任务中,样本中的某些属性往往会缺失,特别是在隐私性较强的医疗领域,此时,我们如何利用缺失的样本进行决策树学习呢?需要解决两个关键性问题:

  • 如何在属性缺失的情况下进行划分属性的选择?(缺失权重
  • 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?(继承策略)

为每个样本引入缺失权重系数:初始化为1

改进的信息增益:

缺失权重的调整:

6. 多变量决策树

单变量决策树的每个划分属性是单属性,因此在属性超空间内,单变量决策树所形成的分类边界是轴平行的。而多变量决策树的划分属性试图学习一个属性集的线性组合,形如

(以上截图来自于《机器学习》-周志华)

你可能感兴趣的:(Chapter2—决策树模型)