介绍

决策树(decision tree),也称为判定树,是一类常见的机器学习的方法。
一般,一棵决策树包含1个根节点,若干内部结点,若干叶结点。叶结点对应决策结果,其他每个结点对应一个属性测试,根结点包含样本全集。

目的

决策树学习的目的是为了产生一棵泛化能力强(处理未见示例的能力强)的决策树,基本流程遵循简单且直观的分而治之(divide-and-conquer)策略。

简单示例

上图完整表达了这个女孩决定是否见一个约会对象的策略,其中绿色节点表示判断条件,橙色节点表示决策结果,箭头表示在一个判断条件在不同情况下的决策路径,图中红色箭头表示了上面例子中女孩的决策过程。

这幅图基本可以算是一颗决策树,说它“基本可以算”是因为图中的判定条件没有量化,如收入高中低等等,还不能算是严格意义上的决策树,如果将所有条件量化,则就变成真正的决策树了。

划分选择

决策树的生成是一个递归的过程。决策树的学习关键在于如何选择最优划分属性。随着划分过程的不断进行,我们希望决策树的分支节点包含的样本尽可能属于同一类,即结点的纯度(purity)越来越高。那么度量样本集合纯度的指标是什么呢?

  • 信息熵(information entropy))是常用的一种指标。信息熵的值越小,样本集合的纯度越高。
  • 1.信息增益(information gain)越大,就意味着使用属性a来划分所获得的纯度提升越大。信息增益准则对可取值数目较多的属性有所偏好。
    注:信息增益 = 分类前信息熵 - 分类后信息熵
  • 2.增益率(intrinsic value). C4.5决策树算法采用的。增益率对可取值数目较少的属性有所偏好,因此,C4.5决策树算法不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
  • 3.基尼指数(Gini index). 基尼值越小,数据集的纯度越高。

剪枝处理(pruning)

剪枝是决策树学习算法对付 过拟合(决策树分支过多,把训练集的特点当作所有数据都具有的一般性质)的主要手段。

  • 预剪枝(prepruning): 决策树在生成的过程中,对于每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
    • 优点:降低了过拟合的风险,显著减少了决策树的训练时间开销和测试时间开销
    • 缺点:可能导致欠拟合
  • 后剪枝(postpruning):先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。后剪枝决策树比预剪枝决策树保留了更多的分支。
    • 优点:后剪枝决策树的欠拟合风险较小,泛化性能往往优于预测剪枝决策树。
    • 缺点:需要自底向上对树中的所有非叶结点进行逐一考察,训练时间开销大得多。

如何判断决策树泛化性能是否提升呢?

待填坑。。。

连续与缺失值处理

1. 连续值处理
=> 连续属性离散化技术 => 二分法(bi-partition)
2. 缺失值处理

1
2
(1)如何在属性值缺失的情况下进行划分属性选择?
(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

多变量决策树

可参考BeaLin’s Blog,她摘选的机器学习原文

参考文档

Comentários

⬆︎TOP