Top Banner
第9第 第第第第第 1 数数数数数数数 SPSS Clementine 数数数数 数数数 数数 数 数 数数数 数数数 数数 数数数 数数数数
67

数据挖掘原理与 SPSS Clementine 应用宝典 元昌安 主编  邓 松 李文敬 刘海涛 编著

Jan 21, 2016

Download

Documents

Caron

数据挖掘原理与 SPSS Clementine 应用宝典 元昌安 主编  邓 松 李文敬 刘海涛 编著 电子工业出版社. 第 9 章 决策树算法. 本章大纲:. 决策树算法原理 常用决策树算法 决策树剪枝 由决策树提取分类规则 应用实例分析. 9.1 决策树算法原理. 优点: 使用者不需要了解很多背景知识,只要训练事例能用属性→结论的方式表达出来,就能用该算法学习; 决策树模型效率高,对训练集数据量较大的情况较为适合; - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 1

数据挖掘原理与 SPSS Clementine 应用宝典

元昌安 主编  邓 松 李文敬 刘海涛 编著

电子工业出版社

Page 2: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 2

第 9 章 决策树算法

Page 3: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 3

本章大纲:

决策树算法原理常用决策树算法决策树剪枝由决策树提取分类规则应用实例分析

Page 4: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 4

9.1 决策树算法原理

优点: 使用者不需要了解很多背景知识,只要训练事例

能用属性→结论的方式表达出来,就能用该算法学习;

决策树模型效率高,对训练集数据量较大的情况较为适合;

分类模型是树状结构,简单直观,可将到达每个叶结点的路径转换为 IF→THEN 形式的规则,易于理解;

决策树方法具有较高的分类精确度。

Page 5: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 5

9.1 决策树算法原理

传统的数据分类操作通常有以下两个步骤 :模型训练阶段:根据给定的训练集,找到

合适的映射函数 H:→C 的表示模型。使用上一步训练完成的函数模型预测数据

的类别,或利用该函数模型,对数据集中的每一类数据进行描述,形成分类规则。

Page 6: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 6

9.1 决策树算法原理

工作过程:

训练数据集

决策树分类算法

评估模式

预测

预测结果

类别未知的数据集

测试集

1、创建决策树过程 2、使用决策树模型预测过程

决策树分类模型的工作过程图

Page 7: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 7

9.1 决策树算法原理定义 9.1 给定一个训练数据集 D =,其中

每个实例,称为例子,训练数据集中包含以下属性 A= 。同时给定类别集合 C 。对于训练数据集 D ,决策树是指具有以下性质的树:

每个内部节点都被标记一个属性 Ai 。每个弧都被标记一个值,这个值对应于相

应父结点的属性。每个叶节点都被标记一个类 Cj 。

Page 8: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 8

9.1 决策树算法原理定义 9.2 分裂准则 定义为在决策树算法中

将训练数据集 D 中的元组划分为个体类的最好的方法与策略,它告诉我们在节点 N上测试哪个属性合适,如何选择测试与测试的方法,从节点 N 上应该生长出哪些分支。

定义 9.3 分裂属性 Xi 定义为决策树中每个内部节点都对应的一个用于分裂数据集的属性。 Xi A=

},,,{ 21 hAAA

Page 9: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 9

9.1 决策树算法原理

定义 9.4 如果 Xi 是连续属性,那么分裂准则的形式为 Xi ,其中,就称为节点 n 的分裂点。

定义 9.5 如果 Xi 是离散属性,那么的形式为,其中,就称为节点 n 的分裂子集。

注意:分裂准则与分裂属性、分裂点、分裂子集并不等同,它们是四个不同的概念,并且分裂子集分裂点分裂属性分裂准则

Page 10: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 10

9.1 决策树算法原理

将上面的定义结合实际的决策树例子可得决策树图如下图 9-1 ,图 9-2 ,图 9-3 所示,图中设 X 为分裂属性,是属性 X 的已知值。

X>x2X<=x1

X

>52,000<=52,000

收入

图 9-2 按照分裂点划分而成的决策树图与相关的具体例子图

Page 11: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 11

9.1 决策树算法原理

X

x1 xix2 ……绿 蓝 橙红

颜色

中等 高低

收入

图 9-3 按照分裂子集划分而成的决策树图与相关的两个具体例子图

Page 12: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 12

9.1 决策树算法原理

图 9-4 按照分裂子集划分而成的决策树(只能是二叉树)图与相关的具体例子图

noyes

iYX

否是

},{ 绿红颜色

Page 13: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 13

9.1 决策树算法原理

目前主要使用如下几个量化评估标准 (1) 预测准确性 (2) 模型强健性 (3) 描述的简洁性 (4) 计算复杂性 (5) 处理规模性

Page 14: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 14

9.2 常用决策树算法

ID3 算法 ID3 是 Quinlan 于 1986 年提出的,是机器学习中一

种广为人知的一个算法,它的提出开创了决策树算法的先河,而且是国际上最早最有影响的决策树方法,在该算法中,引入了信息论中熵的概念,利用分割前后的熵来计算信息增益,作为判别能力的度量。

Page 15: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 15

9.2.1 ID3 算法 定义 9.6 信息熵 自信息量只能反映符号的不确定性,而信息熵可以用

来度量整个信源 X整体的不确定性。设某事物具有 n 种相互独立的可能结果 ( 或称状态 ) : ,每一种结果出现的概率分别为 且有:

( 9.1 )

那么,该事物所具有的不确定量为:

( 9.2 )

nxxx ,,, 21 ),(),(),( 21 nxPxPxP

1)(1

n

iixp

)(log)()()()()()()()( 21

2211 i

n

iinn xPxpxIxpxIxpxIxpXH

Page 16: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 16

9.2.1 ID3 算法

上式即为著名的香农信息量公式。注意到式中的对数以 2 为底,当 n=2 时且时,熵=1比特。由此可见,一个等概率的二选一事件具有 1比特的不确定性。所以,可以把一个等概率的二选一事件所具有信息量定为信息量的单位。任何一个事件能够分解成 n 个可能的二选一事件,它的信息量就是 n比特。

Page 17: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 17

9.2.1 ID3 算法

Quinlan 的首创性工作主要是在决策树的学习算法中第一次引入了信息论中的互信息(称之为信息增益),以之作为属性选择的标准,并且将建树的方法嵌入在其中,其核心是在决策树的各级节点上选择属性,用信息增益作为属性选择标准

Page 18: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 18

9.2.1 ID3 算法

下面给出的是 ID3 算法中将香农的信息熵定义应用到决策树构造中,进而给出的信息增益的定义。

nDDD 21 jD

ntttd ,,, 21

njDt jj ,,2,1,

设训练数据集 D= , 是 n维有穷向量空间,其中

是有穷离散符号集, D中的每个元素 ,叫做例子,其中

设 PD和 ND 是 D 的两个子集,分别叫做正例集和反例集。

Page 19: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 19

9.2.1 ID3 算法

假设训练数据集 D 中的正例集 PD和反例集 ND 的大小分别为 p和 n ,则 ID3基于下面两个假设给出该决策树算法中信息增益的定义,因为信息是用二进制编码的,所以在下面的公式定义中都用以 2 为底的对数。( 1 )在训练数据集 D 上的一棵正确决策树对任意例子的分类概率同 D 中正反例的概率一致;( 2 )一棵决策树能对一个例子做出正确类别判断所需的信息量如下公式所示:

Page 20: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 20

9.2.1 ID3 算法

如果以属性 A 作为决策树的根, A 具有 v 个值 ,它将 A 分为 v个子集 ,假设中含有 p 个正例和 n 个反例,那么子集所需的信息期望是,那么,以属性 A 为根所需的信息期望如下公式所示:

np

n

np

n

np

p

np

pnpI

22 loglog),(

},,,{ 21 vvvv },,,{ 21 veee

),()(1

ii

v

i

ii npInp

npAE

因此,以 A为根的信息增益如下公式所示:

)(),()( AEnpIAgain

Page 21: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 21

9.2.1 ID3 算法 上面给出的 ID3 中的信息论的相关定义主要是在两类分类问题的前提下,下面给出将其扩展到多类后的相关定义描述。

设训练数据集 D 一共有 m 类样例,每类样例数为: 。同样以属性 A 作为决策树的根,具有 v 个值 ,它将 D 分为 v个子集 ,假设子集中任意元组属于类 C 的概率 用表示,并用 估计。那么,该子集的信息量定义如下所示:

mipi ,,2,1,

vvvv ,, 21

},,,{ 21 veee ip

DC Di /,

)(log)( 21

i

m

iir ppeI

那么以 A 为根分类后所需的信息期望如下面公式所示:

)()(1

r

v

j

r eID

eAE

Page 22: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 22

9.2.2 C4.5 算法

( 1 )分裂 ( 2 )连续数据 ( 3 )缺失数据 ( 4 )规则

Page 23: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 23

9.2.2.1 C4.5 的分裂属性选择度量

ID系列的算法为什么会产生归纳偏置呢?归纳偏置是一系列前提,这些前提与训练

数据一起演绎论证未来实例分类。如果给定一个训练数据集,那么通常有很多决策树与这些样例一致。所以,要描述 ID系列算法的归纳偏置,应找到它从所有一致假设中选择一个的根据。

Page 24: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 24

9.2.2.1 C4.5 的分裂属性选择度量

ID系列的搜索策略为:( 1 )优先选择较短的树而不是较长的;( 2 )选择那些信息增益高的属性离根节点较近的树。

结论: ID系列算法的归纳偏置是因为它在选的时候较短的树比较长的树优先所产生的,也就是那些信息增益高的属性更靠近的根节点将会有优先生成树的特权。

Page 25: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 25

9.2.2.1 C4.5 的分裂属性选择度量 为了避免这个偏置,弥补 ID系列算法的不足就要舍弃信息增益这个度量而选择别的决策属性作为度量标准。 Quinlan 在他 1986 年中的论文中提出了一种可以使用的度量标准:增益比率。

增益比率通过加入一个被称为分裂信息( split information )的项来惩罚类似 Date 这样的属性,分裂信息用来衡量属性分裂数据的广度和均匀性,它由如下公式所示:

)(log)( 21 D

e

D

eDSplitI r

v

j

rA

Page 26: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 26

9.2.2.1 C4.5 的分裂属性选择度量

增益比率的公式如下所示:

)(

)()(

ASplitI

AGainAGainRatio

Page 27: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 27

9.2.2.2 C4.5 对连续数据的处理

ID3 算法最初的定义是假设属性值是离散值,但在实际环境中,有很多属性是连续的,不能够用一个确定的标准来对其进行划分。C4.5 使用下面的一系列处理过程来对连续的属性划分成离散的属性,进而达到能够建立决策树的目的。

Page 28: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 28

9.2.2.2 C4.5 对连续数据的处理 Step1 根据训练数据集 D 中各个属性的值对该训

练数据集进行排序; Step2 利用其中各属性的值对该训练数据集动态地进行划分;

Step3 在划分后的得到的不同的结果集中确定一个阈值,该阈值将训练数据集数据划分为两个部分;

Step4 针对这两边各部分的值分别计算它们的增益或增益比率,以保证选择的划分使得增益最大。

Page 29: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 29

9.2.2.3 C4.5 对缺失数据的处理 为了评估属性 A 是否是决策节点 n 的最佳测试属性,要计

算决策树在该节点的信息增益 Gain(D,A) 。假定 < , c( )> 是 S 中的一个训练样例,并且其属性 A 的通过值分得的信息值表示为 .

id id

ie

Page 30: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 30

9.2.2.4 C4.5 对生成规则的利用

只要生成了决策树后,就可以把树转换成一个 IF-THEN 规则的集合。当然,每种算法生成的决策树都可以转换成相应的 if-then 规则, C4.5 算法处理规则与其他算法不同在于它把规则存储在一个二维数组中,每一行都代表着树中的一个规则,即从树根到叶子之间的一个路径 .

Page 31: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 31

9.2.3 CART 算法

CART ( Classification and Regression Trees )算法是由几位统计学家 L.Breiman ,J.Friedman , R.Olshen和 C.Stone 在发表的刊物《分类与回归树》中提出的一种产生二叉决策树分类模型的技术。它与前面 Quinlan 提出的 ID系列算法和 C4.5 不同的是,使用的属性度量标准是 Gini 指标,它和后面将要介绍的算法的共同点也是在于都是利用了相同的属性度量标准 Gini 指标。

Page 32: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 32

9.2.3 CART 算法

Gini 指标主要是度量数据划分或训练数据集 D 的不纯度为主,系数值的属性作为测试属性, Gini 值越小,表明样本的“纯净度”越高。 Gini 指标定义为如下公式:

m

iipDGini

1

21)(

Page 33: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 33

9.2.3 CART 算法 由于二叉树不易产生数据碎片,精确度往往也会高于多叉

树,所以在 CART 算法中,统计学家们采用了二元划分,在分支节点上进行 Gini 值的测试,如果满足一定纯度则划分到左子树,否则划分到右子树,最终生成一棵二叉决策树。

在只有二元分裂的时候,对于训练数据集 D 中的属性 A将 D 分成的 D1和 D2 ,则给定划分 D 的 Gini 指标如下公式所示:

)()()( 22

11 DGini

D

DDGini

D

DDGiniA

Page 34: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 34

9.2.3 CART 算法

对于离散值属性,在算法中递归的选择该属性产生最小 Gini 指标的子集作为它的分裂子集。

对于连续值属性,必须考虑所有可能的分裂点。其策略类似于上面 ID3 中介绍的信息增益处理方法,可以用如下公式所示:

)()(1

i

v

i

iA DGini

D

DDGini

Page 35: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 35

9.2.3 CART 算法

CART 算法在满足下列条件之一,即视为叶节点不再进行分支操作。

( 1 )所有叶节点的样本数为 1 、样本数小于某个给定的最小值或者样本都属于同一类的时候;

( 2 )决策树的高度达到用户设置的阈值,或者分支后的叶节点中的样本属性都属于同一个类的时候;

( 3 )当训练数据集中不再有属性向量作为分支选择的时候。

Page 36: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 36

9.2.4 PUBLIC 算法

前面几个小节的决策树算法都是先建树再剪枝。PUBLIC( Pruning and Building Integrated in Classification) 算法 [8,17] 将建树、剪枝结合到一步完成,即是预剪枝,在建树阶段不生成会被剪枝的子树,从而大大提高了效率 。

PUBLIC 算法的建树是基于 SPRINT 方法、对其决策树的剪枝使用的是基于最小编码代价的 MDL算法,但MDL 原则不能直接应用 。

Page 37: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 37

9.2.5 SLIQ 算法 SLIQ (Supervised Learning In Quest) 算法利用 3 种数据

结构来构造树,分别是属性表、类表和类直方图。 SLIQ 算法在建树阶段,对连续属性采取预排序技术与广

度优先相结合的策略生成树,对离散属性采取快速的求子集算法确定划分条件。具体步骤如下:

Step1 建立类表和各个属性表,并且进行预排序,即对每个连续属性的属性表进行独立排序,以避免在每个节点上都要给连续属性值重利用新排序;

Step 2 如果每个叶节点中的样本都能归为一类,则算法停止;否则转 (3) ;

Step 3 利用属性表寻找拥有最小 Gini 值的划分作为最佳划分方案。

Page 38: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 38

9.2.5 SLIQ 算法

Step4 根据第 3 步得到的最佳方案划分节点,判断为真的样本划归为左孩子节点,否则划归为右孩子节点。这样, (3) (4) 步就构成了广度优先的生成树策略。

Step 5 更新类表中的第二项,使之指向样本划分后所在的叶节点。

Step 6 转到步骤 (2) 。

Page 39: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 39

9.2.6 SPRINT 算法

SPRINT 算法是对 SLIQ 算法的改进,其目的有两个:

一是为了能够更好的并行建立决策树,二是为了使得决策树 T 适合更大的数据集。

SPRINT (Scalable Parallelizable Induction of Classification Tree) 算法是一种可扩展的、可并行的归纳决策树,它完全不受内存限制,运行速度快,且允许多个处理器协同创建一个决策树模型。

Page 40: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 40

9.2.6 SPRINT 算法 SPRINT 算法定义了两种数据结构,分别是属性表和直方

图。属性表由一组三元组 < 属性值、类别属性、样本号 >组成,它随节点的扩张而划分,并附属于相应的子节点 。

与 SLIQ 算法不同, SPRINT 算法采取传统的深度优先生成树策略,具体步骤如下:

Step1 生成根节点,并为所有属性建立属性表,同时预排序连续属性的属性表。

Step2 如果节点中的样本可归为一类,则算法停止;否则转 (3) 。

Step3 利用属性表寻找拥有最小 Gini 值的划分作为最佳划分方案。算法依次扫描该节点上的每张属性表。

Step4 根据划分方案,生成该节点的两个子节点 , 。 Step5 划分该节点上的各属性表,使之关联到或上。

Page 41: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 41

9.2.6 SPRINT 算法

Step6 分别转到步骤 (2)考察 , 节点。 SPRINT 算法在剪枝阶段进行基于 MDL 的剪枝,至此构成了 SPRINT 算法的串行化算法。将串行化算法稍加改进,就成为并行化算法:将训练数据集平均分布到 n 个处理器上,而后每个处理器生成自己的数据分片。由于连续属性值要求全局排序,因此要将 n 个处理器上的连续属性的属性表综合重新排序,再平均分布到 n 个处理器上。在建立 Hash 表之前,需要从 n 个处理器上收集所有的样本号信息。

Page 42: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 42

9.3 决策树剪枝

在现实世界中,获得的数据并不可能保证其完美性与完整性,所以,在当被用来创建决策树的训练数据集中存在有噪声,或者数量太少以至于不能产生目标函数的有代表性的采样的时候,我们使用决策树算法生成的决策树很多分支反映的是训练数据集中的异常。在上面任意一种情况发生的时候,利用简单算法产生的树会出现过拟合训练样例的现象。

Page 43: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 43

9.3 决策树剪枝

在利用决策树算法进行分类的过程中,有两个过程,在 9.1 节中有介绍,第一个过程我们必须要利用训练数据来进行决策树分类模型的建立,另一个过程则是将建立好的决策树分类模型对给定的测试数据进行分类。

Page 44: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 44

9.3.1 预剪枝

预剪枝也称为先剪枝,在该方法中主要是通过提前停止树的构造(例如,通过确定在给定的节点不再分裂或划分训练元组的子集)来对决策树进行剪枝。一旦停止以后,剩下的那个节点就成为了树叶。该树叶可能持有子集元组中最频繁的类或这些元组的概率分布。

Page 45: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 45

9.3.1 预剪枝 预剪枝判断停止决策树的生长的方法大体上可以归纳为以

下几种: ( 1 )一种最为简单的方法就是在决策树到达一定高度的

情况下就停止树的生长; ( 2 )到达此结点的实例具有相同的特征向量,而不必一

定属于同一类,也可停止生长。这种情况可以处理数据中的数据冲突问题;

( 3 )到达此结点的实例个数小于某一个阈值也可停止树的生长;

( 4 )更为普遍的做法是计算每次扩张对系统性能的增益,如果这个增益值小于某个阈值则不进行扩展。如果在最好情况下的扩展增益都小于阈值,即使有些叶子结点的实例不属于同一类,也停止树的增长。

Page 46: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 46

9.3.2后剪枝

后剪枝算法已经得到了广泛的应用,这个算法最初是由 Breiman 等提出,它首先构造完整的决策树,允许决策树过度拟合训练数据,然后对那些置信度不够的结点的子树用叶子结点来替代,这个叶子结点所应标记的类别为子树中大多数实例所属的类别。

Page 47: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 47

悲观错误剪枝 PEP(Pessimistic Error Pruning)

REP 方法进行剪枝具有以下优点: ( 1 )运用 REP 方法得到的决策树是关于测试数

据集的具有最高精度的子树,并且是规模最小的树。

( 2 )它的计算复杂性是线性的,这是因为决策树中的每个非叶子结点只需要访问一次就可以评估其子树被修剪的概率。

( 3 )由于使用独立的测试数据集,和原始决策树相比,修剪后的决策树对未来新事例的预测偏差较小。

Page 48: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 48

悲观错误剪枝 PEP(Pessimistic Error Pruning)

正是由于 REP 方法出现的一系列问题,随后 Quinlan 提出了可以在一定程度弥补上面缺陷的 PEP 方法,也就是悲观剪枝方法。该方法引入了统计学上连续修正的概念来弥补这一个缺陷,在评价子树的训练错误的公式中添加了一个常数,假定每个叶节点都自动对实例的某部分进行错误的分类 。

Page 49: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 49

悲观错误剪枝 PEP(Pessimistic Error Pruning)

所用来剪枝的度量的基本思想可以概述为以下几点: ( 1 )假设训练数据集生成原始树为 T ,某一叶子结点的

实例个数为,其中错误分类的个数为; ( 2 )我们定义训练数据集的误差率如下公式 9.13 所示:

( 9.13 ) 由于训练数据集既用来生成决策树又用来修剪树,所以是

有偏倚的,利用它来修剪的决策树树并不是最精确,最好的;

( 3 )为此, Quinlan 在误差估计度量中增加了连续性校正,将误差率的公式修改为如下公式 9.14 所示 :

( 9.14 )

ttt nep /

ttt neP /]2

1[

Page 50: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 50

悲观错误剪枝 PEP(Pessimistic Error Pruning)

那么,同样的,我们假设 s 为树 T 的子树的其中一个子节点,则该子树的叶子结点的个数为 , 的分类误差率如下公式所示 :

s

ss

ss

ss

T n

le

n

eP

t

2]

2

1[

在定量的分析中,为简单起见,我们用误差总数取代上面误差率的表示,即有公式 :

2

1 tt eE

那么,对于子树

tT

,它的分类误差总数如下公式所示:tT

2s

sT

leE

t

sl tT

Page 51: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 51

最小错误剪枝 MEP(Minimum Error Pruning)

MEP 方法是由 Niblett和 Bratko首先提出来的,它在一个相对独立的数据集上从树的叶子结点开始,向上搜索一个单一的树来使分类误差的期望概率达到最小,但它并不需要一个额外的修剪数据集。使用的信息来自于训练数据集,其目的是在未知的数据集上产生最小预测分类错误率。

Page 52: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 52

代价-复杂度剪枝 CCP(Cost-Complexity Pruning)

CCP 方法就是著名的 CART ( Classification and Regression Trees ) 剪枝算法,它包含两个步骤:

(1)自底向上,通过对原始决策树中的修剪得到一系列的树,其中是由中的一个或多个子树被替换所得到的,为未经任何修剪的原始树,为只有一个结点的树。

(2) 评价这些树,根据真实误差率来选择一个最优秀的树作为最后被剪枝的树。

Page 53: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 53

基于错误剪枝 EBP(Error-Based Pruning)

EBP 剪枝法是一种应用于 C4. 5 算法的自下向上的剪枝法,被认为是 PEP 剪枝法的改进,因为 EBP 剪枝基于对训练数据集的更加悲观的估计。同 PEP 剪枝, EBP仅利用训练数据集来构建和剪枝决策树。假设可将叶结点覆盖的实例看作统计样本,叶结点对实例的分类错误率遵循二项式分布,并利用置信因子 CF控制剪枝的程度。我们将 CF定义为如下公式所示 :

xNxe

x

ppx

NCF

)1(

0

Page 54: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 54

9.4 由决策树提取分类规则

决策树分类方法有它的优点,但是也有一定的局限性,比如,利用算法生成的决策树的规模会因为训练数据集的巨大而变得过大使得难以理解,可读性差。如果直接从决策树中提取出 IF- THEN 规则,建立基于规则的分类器,与决策树分类器相比,IF- THEN 规则可能更容易理解,特别是当决策树分支非常大时也一样 。

Page 55: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 55

9.5 应用实例分析

下面我们利用上面表 9-1 根据天气是否打网球的训练数据集,利用 ID3 算法来判断某天是否适合打网球。

( 1 )类别属性信息熵的计算由于未分区前,训练数据集中共有 14 个实例,其中有 9 个实例属于 p 类(适合打网球的), 5 个实例属于 n 类(不适合打网球),因此分区前类别属性的熵为:

bitnpI 940.014

5log

14

5

14

9log

14

9),( 22

Page 56: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 56

9.5 应用实例分析

( 2 )非类别属性信息熵的计算若选择 Outlook

为测试属性。

= 0.694bit

)5

2log

5

2

5

3log

5

3(

15

5)

4

0log

4

0

4

4log

4

4(

14

4)

5

3log

5

3

5

2log

5

2(

14

5)( 222222 OutlookE

Page 57: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 57

9.5 应用实例分析 因此,这种划分的信息增益是:

同理,可以求出 其它三个属性的信息增益为 , , 。由上可知,属性值 Outlook 在各个属性中具有最高的增益,被选作分裂属性。则第一个根节点 T 被用标记,并对于每个属性值生长一个分支:

( 3 )递归地创建决策树的树枝和叶子 选择作为测试属性后,将训练实例集分为三个子集,生成三个子节点,

对每个子节点递归采用上述过程进行分类直至每个节点都成为叶节点而已。

bitOutlookEnpIOutlookGain 246.0694.0940.0)(),()(

biteTemperaturGain 029.0)( bitHumidityGain 151.0)( bitWindGain 048.0)(

Page 58: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 58

9.5 应用实例分析 属性值 Outlook 在各个属性中具有最高的增益,被选作分裂属性。则

第一个根节点 T 被用标记,并对于每个属性值生长一个分支:

Outlook

Temperature Humi di ty Wi ndy Cl ass Hot Hi gh Weak No Hot Hi gh Strong No Mi l d Hi gh Weak No Cool Normal Weak Yes Mi l d Normal Strong Yes

Temperature Humi di ty Wi ndy Cl ass Hot Hi gh Weak yes cool Normal Strong yes Mi l d Hi gh Strong yes Hot Normal Weak yes

Temperature Humi di ty Wi ndy Cl ass mi l d Hi gh Weak No cool Normal Weak No cool Normal Strong No mi l d Normal Weak Yes Mi l d Hi gh Strong Yes

T1: (O=O1) sunny T2: (O=O2) overcast

根据信息增益结果生成的以 Outlook 为根节点的初级决策树图

Page 59: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 59

9.5 应用实例分析 A.分析图中的 sunny 分支,计算其子属性的信息增益值

来决定子分裂属性形成子分支之一。 针对 sunny 中的子训练数据集分支,有两个类别,该分支

中有 3 个实例属于 n 类,有 2 个实例属于 p 类,因此针对分支的信息熵为:

若以 : sunny 分支中的属性 Temperature 为测试属性,则测试属性 Temperature 的信息量为 :

1T

1T

bitnpIT 971.05

3log

5

3

5

2log

5

2),( 221

1T

bit

eTemperaturET

400.0)1

0log

1

0

1

1log

1

1(

5

1

)2

1log

2

1

2

1log

2

1(

5

2)

2

0log

2

0

2

2log

2

2(

5

2)(

22

22221

Page 60: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 60

9.5 应用实例分析 其信息增益为:

若以: sunny 分支中的属性 Humidity 为测试属性,则测试属性 Humidity 的信息量为 :

0.00bit 其信息增益为:

若以: sunny 分支中的属性 Wind 为测试属性 ,则测试属性 windy的信息量为:

0.468bit

其信息增益为: = 0.971- 0.468=0.493bit

biteTemperaturEnpIeTemperaturGain TrT 571.0400.0971.0)(),()(111

)2

0log

2

0

2

2log

2

2(

5

2)

2

0log

2

0

2

2log

2

2(

5

3)( 22221

HumidityET

)(),()(111HumidityEnpIHumidityGain TTT 0.971-0.00 =0.971bit

)2

1log

2

1

3

2log

3

2(

5

2)

2

1log

2

1

3

2log

3

2(

5

3)( 22221

windyET

)(),()(111windyEnpIwindyGain TTT

Page 61: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 61

9.5 应用实例分析 这时生成的决策树如图所示:

Outlook T

3: (O=O3) rain

T1: (O=O1) sunnyT2:

(O=O2) overcast

Temperature Humi di ty Wi ndy Cl ass mi l d Hi gh Weak No cool Normal Weak No cool Normal Strong No mi l d Normal Weak Yes Mi l d Hi gh Strong Yes

yes

Humidity

noyes

highnormal

决策树构造图 2

Page 62: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 62

9.5 应用实例分析 B.分析图 9-8 中的: rain 分支,计算其子属性的信息增益值来确定

子分裂属性形成子分支之三。 针对: rain 中的子训练数据集分支,有两个类别,该分支中有 3 个实

例属于 n 类,有 2 个实例属于 p 类,因此针对分支的信息熵为:

若以: rain 分支中的属性 Temperature 为测试属性,则测试属性 Temperature 的信息量为:

其信息增益值为: 0.971- 0.285 = 0.69

6bit

bitnpIT 971.05

3log

5

3

5

2log

5

2),( 223

)2

0log

2

0

2

2log

2

2(

5

2)

3

2log

3

2

3

1log

3

1(

5

3)( 22223eTemperaturET 0.285bit

)(),()(333

eTemperaturEnpIeTemperaturGain TTT

Page 63: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 63

9.5 应用实例分析 若以 : rain 分支中的属性 Humidity 为测试属性 ,则测试属性 Humi

dity 的信息量为 : 0.951bit

其信息增益值为 : 0.971-0.950=0.020bit

若以: rain 分支中的属性 Windy 为测试属性 ,则测试属性 windy 的信息量为 :

0.951bit 其信息增益值为:

3T

)2

1log

2

1

2

1log

2

1(

5

2)

3

1log

3

1

3

2log

3

2(

5

3)( 22223

HumidityET

)(),()(333HumidityEnpIHumidityGain TTT

)2

1log

2

1

2

1log

2

1(

5

2)

3

1log

3

1

3

2log

3

2(

5

3)( 22223

windyET

)(),()(333windyEnpIwindyGain TTT =0.971-0.951=0.020bit

Page 64: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 64

9.5 应用实例分析 根据步骤 B 所求得的信息增益值 , 属性 Temperature 的信息增益值最

大,故子分支三可以分得两个分支,决策树构造图 3 如图所示:Outlook

T3: (O=O

3) rainT1: (O=O1) sunny

T2: (O=O2) overcast

Humi di ty Wi ndy Cl ass Hi gh Weak No Normal weak Yes

High strong Yes

yes

Humidity

noyes

highnormal

Temperature

Humi di ty Wi ndy Cl ass normal Weak No Normal strong no

t1: mild t3: cool

no

t2: hot

决策树构造图3

Page 65: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 65

9.5 应用实例分析 C. 分析图中的: rain 下的分裂属性 Temperature 的两个子分支,其

中 t3 : cool 时,分支都属于反例 n ,故可以直接作为一个叶子节点no ;

另一个 t1 : mild 时,若假设 Humidity 为测试属性,则分支 t1总的信息熵和测试属性 Humidity信息量分别为:

3

2log

3

2

3

1log

3

1),( 221 npI t 0.918bit

)(1 HumidityEt )2

1log

2

1

2

1log

2

1(

3

2)

1

0log

1

0

1

1log

1

1(

3

12222 = = 0.666bit

则其信息增益为:

)(),()( 111 HumidityEnpIHumidityGain ttt 0.918- 0.666=0.252bit

Page 66: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 66

9.5 应用实例分析 若假设 Windy 为测试属性 ,则测试属性 windy 的信息量为:

)(1 windyEt = )2

1log

2

1

2

1log

2

1(

3

2)

1

0log

1

0

1

1log

1

1(

3

12222

= 0.666bit

其信息增益为: )(),()( 111 windyEnpIwindyGain ttt 0.918-0.666=0.251bit.

由上分析可得 Humidity和 windy 的信息增益是相同的,又因为在 t1 分支的元组中,p 元组的比例比 n 元组的大,所以,最终得到的决策树图如图所示:

Outlook T

3: (O=O3) rain

T1: (O=O1) sunnyT2:

(O=O2) overcast

yes

Humidity

noyeshighnormal

Temperature

t1: mild t3: cool

no

t2: hot

yes no

Page 67: 数据挖掘原理与 SPSS Clementine 应用宝典        元昌安  主编         邓 松 李文敬 刘海涛 编著

第9章 决策树算法 67

Any Question?

Thank You!