新闻正文
,
决策树
决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,
在贷款申请中,要对申请的风险大小做出判断,图7是为了解决这个问题而建立
的一棵决策树,从中我们可以看到决策树的基本组成部分:决策节点、分支和
叶子。
决策树中最上面的节点称为根节点,是整个决策树的开始。本例中根节点是
“收入>¥40,000”,对此问题的不同回答产生了“是”和“否”两个分支。
决策树的每个节点子节点的个数与决策树在用的算法有关。如CART算法得到的决
策树每个节点有两个分支,这种树称为二叉树。允许节点含有多于两个子节点的
树称为多叉树。
每个分支要么是一个新的决策节点,要么是树的结尾,称为叶子。在沿着决策树
从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不
同回答导致不同的分支,最后会到达一个叶子节点。这个过程就是利用决策树进
行分类的过程,利用几个变量(每个变量对应一个问题)来判断所属的类别(最
后每个叶子会对应一个类别)。
假如负责借贷的银行官员利用上面这棵决策树来决定支持哪些贷款和拒绝哪些贷
款,那么他就可以用贷款申请表来运行这棵决策树,用决策树来判断风险的大小。
“年收入>¥40,00”和“高负债”的用户被认为是“高风险”,同时“收入
<¥40,000”但“工作时间>5年”的申请,则被认为“低风险”而建议贷款给他/她。
数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用
来作预测(就像上面的银行官员用他来预测贷款风险)。常用的算法有CHAID、
CART、 Quest 和C5.0。
建立决策树的过程,即树的生长过程是不断的把数据进行切分的过程,每次切分
对应一个问题,也对应着一个节点。对每个切分都要求分成的组之间的“差异”
最大。
各种决策树算法之间的主要区别就是对这个“差异”衡量方式的区别。对具体衡
量方式算法的讨论超出了本文的范围,在此我们只需要把切分看成是把一组数据
分成几份,份与份之间尽量不同,而同一份内的数据尽量相同。这个切分的过程
也可称为数据的“纯化”。看我们的例子,包含两个类别--低风险和高风险。如
果经过一次切分后得到的分组,每个分组中的数据都属于同一个类别,显然达到
这样效果的切分方法就是我们所追求的。
到现在为止我们所讨论的例子都是非常简单的,树也容易理解,当然实际中应用
的决策树可能非常复杂。假定我们利用历史数据建立了一个包含几百个属性、输
出的类有十几种的决策树,这样的一棵树对人来说可能太复杂了,但每一条从根
结点到叶子节点的路径所描述的含义仍然是可以理解的。决策树的这种易理解性
对数据挖掘的使用者来说是一个显著的优点。
然而决策树的这种明确性可能带来误导。比如,决策树每个节点对应分割的定义
都是非常明确毫不含糊的,但在实际生活中这种明确可能带来麻烦(凭什么说年
收入¥40,001的人具有较小的信用风险而¥40,000的人就没有)。
建立一颗决策树可能只要对数据库进行几遍扫描之后就能完成,这也意味着需要
的计算资源较少,而且可以很容易的处理包含很多预测变量的情况,因此决策树
模型可以建立得很快,并适合应用到大量的数据上。
对最终要拿给人看的决策树来说,在建立过程中让其生长的太“枝繁叶茂”是没
有必要的,这样既降低了树的可理解性和可用性,同时也使决策树本身对历史数
据的依赖性增大,也就是说这是这棵决策树对此历史数据可能非常准确,一旦应
用到新的数据时准确性却急剧下降,我们称这种情况为训练过度。为了使得到的
决策树所蕴含的规则具有普遍意义,必须防止训练过度,同时也减少了训练的时
间。因此我们需要有一种方法能让我们在适当的时候停止树的生长。常用的方法
是设定决策树的最大高度(层数)来限制树的生长。还有一种方法是设定每个节
点必须包含的最少记录数,当节点中记录的个数小于这个数值时就停止分割。
与设置停止增长条件相对应的是在树建立好之后对其进行修剪。先允许树尽量生
长,然后再把树修剪到较小的尺寸,当然在修剪的同时要求尽量保持决策树的准
确度尽量不要下降太多。
巧者劳而智者忧, 无能者无所求, 顺风而翱游, 泛若不系之舟
.
※ 修改:·wizard 於 06月20日13:57:24 修改本文
※ 转载:· bbs.sjtu.edu.cn
收藏到ViVi 收藏此页到365Key
上一篇:
数据挖掘入门(七) 下一篇:
数据挖掘入门(九)