决策树

1.      什么是决策树(Decision Tree)

  • 决策树是一种类似流程图的树形结构。每一个内部节点表示一个測试(查询),该节点的每一个分支表示该測试的一个结果。每一个叶节点表示一个类别。
  • 决策树是一种简单可是广泛使用的分类器。通过训练数据构建决策树,能够高效的对未知数据进行分类。

2.      样例

ID

拥有房产
(是/否)

婚姻情况
(单身,已婚,离婚)

年收入
(单位:千元)

无法偿还债务
(是/否)

1

单身

125

2

已婚

100

3

单身

70

4

已婚

120

5

离婚

75

6

已婚

60

7

离婚

220

8

单身

85

9

已婚

75

10

单身

90

由上表的数据构造决策树例如以下:


新用户:无房产,单身,年收入55K。那么依据上面的决策树。能够预測他无法偿还债务。

3.      什么情况下适合使用决策树

1)  使用场景:预測

2)  决策树的变量

  • 数字型(Numeric)

             整数或浮点数,如前面样例中的“年收入”。

用“>=”。“>”,“<”或“<=”作为切割条件

  • 名称型(Nominal)

             类似编程语言中的枚举类型,变量仅仅能从有限的选项中选取。比方前面样例中的“婚姻情况”,仅仅能是“单身”,“已婚”或“离婚”。使用“=”来切割

4.      决策树的核心问题

l  决策树的生长

1)生长过程


决策树的生长过程本质是对训练样本的重复分组过程。当对某组数据继续分组不再有意义时,决策树相应的分枝便不再生长;当全部数据组的继续分组均不再有意义时,决策树的生长过程结束。

2)  决策树的分枝准则

  • 怎样从众多的输入变量中选择一个当前最佳的分组变量?
  • 怎样从分组变量的众多取值中找到一个最佳的切割点?

l  决策树的剪枝

1)  为什么要剪枝

完整的决策树对训练样本特征的描写叙述“过于精确”,随着决策树生长和样本数量不断降低,所体现的数据特征越个性化,一般性就越差,因此完整的决策树并非一棵分类预測新数据对象的最佳树。比方极端情况下可能产生这种推理规则:“年收入大于50000元且年龄大于50岁且姓名是张三的人购买某种商品”。

这条推理尽管精确可是失去了一般性,非常可能因其失去一般代表性而无法用于对新数据的分类预測(过度拟合)。

2)  剪枝的方法

Ø  预修剪

  • 事先指定决策树生长的最大深度
  • 为防止某个树节点上的样本数过少,事先指定一个最小样本量

Ø  后修剪

边修剪边检验(使用检验样本)的过程。在剪枝过程中,它不断计算当前决策子树对输出变量的预測精度或误差。能够事先指定一个同意的最大错误率。当剪枝达到某个深度时,当前的错误率高于同意的最大值。则停止剪枝,否则继续剪枝。

决策树算法
决策树算法 适用范围 改进的方式 改进的效果
ID3 离散型属性数据     -- --
C4.5 离散型
连续型属性数据
对连续型属性的离散化
採用GainRatio作为切割变量准则
使其适用范围更广泛
避免ID3算法的过度拟合问题
C5.0 处理大数据集 採用Boosting/BoostingTrees方式 提高模型准确率。计算速度比較快。占用内存资源较少

1)  怎样从众多的输入变量中选择一个当前最佳的分组变量?

2)  怎样从分组变量的众多取值中找到一个最佳的切割点

试想:怎样评估切割点的好坏

假设一个切割点能够将当前的所有节点分为两类。使得每一类都非常“纯”,也就是同一类的记录较多。那么就是一个好切割点。比方上面的样例,“拥有房产”。能够将记录分成了两类,“是”的节点所有都能够偿还债务,非常“纯”。“否”的节点。能够偿还贷款和无法偿还贷款的人都有,不是非常“纯”。

扩展

量化“纯度”

1)不纯度

  • Gini不纯度:
  • 熵(Entropy):

  • 错误率(Error):

上面三种计算纯度的公式均为值越大,表示越“不纯”,越小表示越“纯”。

实践证明三种公式的选择对终于分类准确率的影响并不大,一般使用熵公式。

样例:

以C5.0算法为例,使用信息增益率(GainRatio)为标准确定最佳分组变量和切割点。


在信息论中信息传递过程看作是一个由信源、信道和信宿组成的传递系统实现的,信源是信息的发送端,信宿是信息的接收端。在2中的样例。拥有房产(T1)。婚姻情况(T2)。年收入(T3)作为输入变量,无法偿还债务为输出变量。

决策树将输出变量(无法偿还债务)看作信源发出的信息U,输入变量看作信宿接收到的一系列信息V。

                                                 (无法偿还债务:2  能够偿还债务:8)

(拥有房产:3  无房产:7)

 

 

(单身:4(3,1)   离婚:2(1,1)   已婚:4(4,0))

由上面的计算可知,T1的信息增益率(0.133)大于T2的信息增益率(0.130)。因此应选择T1作为最佳分组变量。

 

在婚姻情况中有3个属性,分别为单身。离婚,已婚。怎样选择切割点?

 

由上面的计算可知。已婚的信息增益率(1.444)大于单身的信息增益率(0.795)和离婚的信息增益率(1.127)。因此应选择已婚作为最佳分组变量。

3)  怎样剪枝

C5.0採用后修剪方法从叶节点向上逐层剪枝。其关键是错误率即误差的预计及剪枝标准的设置。

Ø  误差预计

利用统计学置信区间的预计方法,直接在训练样本集中预计误差。

Ø  剪枝标准

在得到误差预计后,採用“降低-误差”法推断是否剪枝。即先计算待剪子树中叶节点的加权误差,然后与父节点的误差进行比較,假设大于父节点的误差则剪掉。

5.      决策树的长处

l  决策树模型可读性好。具有描写叙述性,有助于人工分析。

l  效率高,决策树仅仅须要一次构建,重复使用,每一次预測的最大计算次数不超过决策树的深度。

l  能够非常自然的嵌入专家的先验知识

參考资料

1. http://www.cnblogs.com/bourneli/archive/2013/03/15/2961568.html

2. http://www.cnblogs.com/bourneli/archive/2012/11/17/2775405.html

3. http://blog.csdn.net/soso_blog/article/details/5755457

4. clementine数据挖掘方法及应用

原文地址:https://www.cnblogs.com/liguangsunls/p/6812683.html