决策树

来源:互联网 发布:深圳程序员工资2016 编辑:程序博客网 时间:2024/06/10 08:52

决策树

  • 概念
  • 递归生成
  • 构建步骤

    决策树是一种分类器,包含根节点、内部节点(属性测试)和叶节点(决策结果) ,相当于多叉树。目的是产生泛化能力强(处理未见实例的能力),遵循“分而治之”的思想。
    递归生成。导致递归返回的三种情形:

    1. 当前节点的样本属于同一类别,无需划分;
    2. 当前属性集为空,或是所有样本在所有属性集上取值相同
    3. 当前节点包含的样本集合为空
      构建的基本步骤:
    4. 开始所有记录看做一个节点
    5. 遍历每个变量的每一种划分方式,找到最好的划分属性
    6. 划分为N1和N2
    7. N1和N2继续划分直到递归返回
      决策树示例

ID3

  1. ID3(分类任务)
    ID3的节点划分所衡量的指标是:信息增益
    信息熵: E(D)=vk=0(pk)(log2pk)
    特征a的信息增益:Gain(D,a)=vv=1|Dv|E(Dv)|D|

一般而言,信息增益越大,则意味着使用属性α来进行划分所获得的“纯度提升”越大,所以选择信息增益最大的属性作为划分属性。
例

C4.5

  • C4.5(分类任务)
    C4.5采用信息增益率来选择最优划分特征属性。
    Gain_aio(D,a)=Gain(D,a)IV(a)
    IV(a)=|Dv||D|log2|Dv||D|

IV(a)称为属性α的“固有值”。属性α的可能值数目越大(v越大),则IV(a)的值通常会越大。

CART

  • CART(预测任务)
    CART树是一颗二叉树,内部节点特征取值为‘是’(左)、‘否’(右)。使用“基尼系数”来选择划分属性。
    Gini(D)=vk=1pk(1pk)=1vk=1p2k
    Gini(D,a)=vv=1|Dv|Gini(Dv)|D|

Gini(D)越小,则数据集D的纯度越高。基尼系数最小的属性作为最优划分属性。

剪枝

  • 前剪枝

前剪枝:决策树生成过程中,对每个节点再划分前进行预估,若当前节点的划分不能够提升泛化能力,则停止划分并将此节点标记为叶节点。
(在进行划分时,对于要剪枝的节点需注意:其标记为训练样本中最多的类别)

  1. 对根节点进行剪枝预估,选择训练集中类别最多的进行标记  2. 对节点2进行剪枝预估  3. 对节点3进行剪枝预估  4. 对节点4进行剪枝预估,因为4已经是一个叶节点,所以不再进行剪枝

eg
优缺点:很多分支未展开,降低过拟合的风险减少开销;有欠拟合风险

  • 后剪枝

后剪枝:先从训练集生成一颗完整的决策树,然后自底向上对非叶子节点进行考察,采用的方法是从原数据集中留出“验证集”(用来确定网络结构或者模型复杂程度的参数)。

1.考虑节点6

2.考虑节点5

3.对节点2进行预估

4.对节点3,1进行预估,均未能在验证集上提高精度,所以不剪枝。
(第三步生成的决策树为最终的决策树)
eg

原创粉丝点击