⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8.txt

📁 This complete matlab for neural network
💻 TXT
字号:
发信人: ashun (阿顺), 信区: DataMining
标  题: 数据挖掘入门(八)
发信站: 南京大学小百合站 (Mon Aug 20 10:17:05 2001)

决策树


决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,在贷款申
请中,要对申请的风险大小做出判断,图7是为了解决这个问题而建立的一棵决策树,从中
我们可以看到决策树的基本组成部分:决策节点、分支和叶子。

 

决策树中最上面的节点称为根节点,是整个决策树的开始。本例中根节点是“收入>¥40,
000”,对此问题的不同回答产生了“是”和“否”两个分支。


决策树的每个节点子节点的个数与决策树在用的算法有关。如CART算法得到的决策树每个
节点有两个分支,这种树称为二叉树。允许节点含有多于两个子节点的树称为多叉树。



每个分支要么是一个新的决策节点,要么是树的结尾,称为叶子。在沿着决策树从上到下
遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同回答导致不同的
分支,最后会到达一个叶子节点。这个过程就是利用决策树进行分类的过程,利用几个变
量(每个变量对应一个问题)来判断所属的类别(最后每个叶子会对应一个类别)。


假如负责借贷的银行官员利用上面这棵决策树来决定支持哪些贷款和拒绝哪些贷款,那么
他就可以用贷款申请表来运行这棵决策树,用决策树来判断风险的大小。“年收入>¥40,
00”和“高负债”的用户被认为是“高风险”,同时“收入<¥40,000”但“工作时间>5年
”的申请,则被认为“低风险”而建议贷款给他/她。


数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测
(就像上面的银行官员用他来预测贷款风险)。常用的算法有CHAID、 CART、 Quest 和C
5.0。


建立决策树的过程,即树的生长过程是不断的把数据进行切分的过程,每次切分对应一个
问题,也对应着一个节点。对每个切分都要求分成的组之间的“差异”最大。


各种决策树算法之间的主要区别就是对这个“差异”衡量方式的区别。对具体衡量方式算
法的讨论超出了本文的范围,在此我们只需要把切分看成是把一组数据分成几份,份与份
之间尽量不同,而同一份内的数据尽量相同。这个切分的过程也可称为数据的“纯化”。
看我们的例子,包含两个类别--低风险和高风险。如果经过一次切分后得到的分组,每个
分组中的数据都属于同一个类别,显然达到这样效果的切分方法就是我们所追求的。


到现在为止我们所讨论的例子都是非常简单的,树也容易理解,当然实际中应用的决策树
可能非常复杂。假定我们利用历史数据建立了一个包含几百个属性、输出的类有十几种的
决策树,这样的一棵树对人来说可能太复杂了,但每一条从根结点到叶子节点的路径所描
述的含义仍然是可以理解的。决策树的这种易理解性对数据挖掘的使用者来说是一个显著
的优点。


然而决策树的这种明确性可能带来误导。比如,决策树每个节点对应分割的定义都是非常
明确毫不含糊的,但在实际生活中这种明确可能带来麻烦(凭什么说年收入¥40,001的人
具有较小的信用风险而¥40,000的人就没有)。


建立一颗决策树可能只要对数据库进行几遍扫描之后就能完成,这也意味着需要的计算资
源较少,而且可以很容易的处理包含很多预测变量的情况,因此决策树模型可以建立得很
快,并适合应用到大量的数据上。


对最终要拿给人看的决策树来说,在建立过程中让其生长的太“枝繁叶茂”是没有必要的
,这样既降低了树的可理解性和可用性,同时也使决策树本身对历史数据的依赖性增大,
也就是说这是这棵决策树对此历史数据可能非常准确,一旦应用到新的数据时准确性却急
剧下降,我们称这种情况为训练过度。为了使得到的决策树所蕴含的规则具有普遍意义,
必须防止训练过度,同时也减少了训练的时间。因此我们需要有一种方法能让我们在适当
的时候停止树的生长。常用的方法是设定决策树的最大高度(层数)来限制树的生长。还
有一种方法是设定每个节点必须包含的最少记录数,当节点中记录的个数小于这个数值时
就停止分割。


与设置停止增长条件相对应的是在树建立好之后对其进行修剪。先允许树尽量生长,然后
再把树修剪到较小的尺寸,当然在修剪的同时要求尽量保持决策树的准确度尽量不要下降
太多。
--
业精于勤荒于嬉,行成于思毁于随。 —— 韩愈
临渊羡鱼不如退而结网。           —— 班固
勿以恶小而为之,勿以善小而不为。 —— 刘备

※ 来源:.南京大学小百合站 http://bbs.nju.edu.cn [FROM: 202.119.80.20]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -