第4章 分类:基本概念、决策树与模型评估
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Hunt算法
Tid
有房者
1
是
2
否
3
否
4
是
5
否
6
否
7
是
8
否
9
否
10
否
婚姻状况
单身 已婚 单身 已婚 离异 已婚 离异 单身 已婚 单身
年收入
125k 100k 70k 120k 95k 60k 220k 85k 75k 90k
拖欠贷款者
否 否 否 否 是 否 否 是 否 是
Hunt算法构造决策树
有房者
2、决策树的生成由两个阶段组成 决策树构建 开始时,所有的训练样本都在根节点 递归通过选定的属性,来划分样本 (必须是离散值) 树剪枝 许多分枝反映的是训练数据中的噪声和孤立点,树剪枝试图检测和剪 去这种分枝
3、决策树的使用:对未知样本进行分类 通过将样本的属性值与决策树相比较
根结点(root node):它没有入边,但是有零条或多条出边。
目的: 1、描述性建模 分类模型可以作为解释性的工具,用于区分不同类中的对象。 2、预测性建模 分类模型还可以用于预测未知记录的类标号。
名字 体温 表皮 胎生 水生 飞行 有腿 冬眠 类标
覆盖
动物 动物
号
毒蜥 冷血 鳞片 否 否 否 是 是 ?
输入属性集(x)
分类模型
输出类标号(y)
分类器的任务:根据输入属性集x确定类标号y
熵:
c 1
Entropy(t) p(i | t) log2 p(i | t) i0
基尼指数:
c 1
Gini(t) 1 [ p(i | t)]2源自文库i0
分类误差:
Classif ication _ error(t) 1 max[ p(i | t)] i
其中c是类的个数,并且在计算熵时,O log 2 0 0
Gini 1 (3 / 6)2 (3 / 6)2 0.5 Entropy (3/ 6) log 2 (3/ 6) (3/ 6) log 2 (3/ 6) 1 Error 1 max[3/ 6,3/ 6] 0.5
1
熵
0.9
Gini
分类误差 0.8
0.7
0.6
0.5
0.4
0.3
0.2
离异
3、序数属性 序数属性也可以产生二元或多路划分,只要不违背序数属性值的有序 性,就可以对属性值进行分组。
衬衣尺码
衬衣尺码
衬衣尺码
小号, 中号
大号, 加大号
小号
中号, 加大号
小号, 大号
中号, 加大号
(a)
(b)
(c)
4、连续属性 对于连续属性来说,测试条件可以是具有二元输出的比较测试 (A v) 或 (A v) 也可以是具有形如vi A vi1(i 1,2, , k) 输出的范围查询。
Test Set
Class ? ? ? ? ?
Learning algorithm
Induction Learn Model
Apply Model
Deduction
训练集:由类标号已知的记录构成 检验集:由类标号未知的记录构成
Model
二类问题的混淆矩阵
实际的类
类=1 类=0
预测的类
类=1
类=0
f11
是
否
拖欠贷款者=否
拖欠贷款者=否
拖欠贷款者=否
(a)
(b)
有房者
是
否
有房者
是
否
拖欠贷款者=否
婚姻状况
单身离异
已婚
拖欠贷款者=否
婚姻状况
单身离异
已婚
<80k
年收入
拖欠贷款者=否
>=80k
拖欠贷款者=是
拖欠贷款者=否 拖欠贷款者=否
拖欠贷款者=是
(c)
(d)
如果属性值的每种组合都在训练数据中出现,并且每种组合都具有唯一的类 标号,则Hunt算法是有效的。但是对于大多数实际情况,这些假设太苛刻了, 因此,需要附加的条件来处理以下的情况:
对于给定的属性集,可以构造的决策树的数目达指数级。 尽管某些决策树比其他决策树更准确,但是由于搜索空间是 指数规模的,找出最佳决策树在计算上是不可行的。
尽管如此,人们还是开发了一些有效的算法,能够在合 理的时间内构造出具有一定准确率的次最优决策树。这些算 法通常都采用贪心策略。
有许多决策树算法: Hunt算法 信息增益——Information gain (ID3) 增益比率——Gain ration(C4.5) 基尼指数——Gini index (SLIQ,SPRINT)
0.1
0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 p
二元分类问题不纯性度量之间的比较
不同的不纯性度量是一致的,但是作为测试条件的属性选择仍然 因不纯性度量的选择而异。
为确定测试条件的效果,我们需要比较父结点(划分前)的不纯性程度和 子女结点(划分后)的不纯性程度,它们的差越大,测试条件的效果就越
f10
f 01
f 00
表中每个表项 fij 表示实际类标号为 i 但是被预测为类 j 的记 录数。被分类模型正确预测的样本总数是f11 f00 ,而被错误 预测的样本总数是 f10 f01 。
虽然混淆矩阵提供衡量分类模型的信息,但是用一个数汇总这些信 息更便于比较不同模型的性能。为实现这一目的,可以使用性能度 量(performance metric),如准确率(accuracy),其定义如下:
Tid 1 2 3 4 5 6 7 8 9 10
10
Attrib1 Attrib2
Yes
Large
No
Medium
No
Small
Yes
Medium
No
Large
No
Medium
Yes
Large
No
Small
No
Medium
No
Small
Attrib3 125K 100K 70K 120K 95K 60K 220K 85K 75K 90K
决策树归纳的设计问题
(1)如何分裂训练记录?
树增长过程的每个递归步骤都必须选择一个属性测试条件,将 记录划分成较小的子集。为了实现这个步骤。算法必须提供为 不同类型的属性指定测试条件的方法,并且提供评估每种测试 条件的客观度量。
(2)如何停止分裂过程?
决策树需要有结束条件,以终止决策树的生长过程。一个可能 的策略是分裂结点,直到所有的记录都属于同一个类,或者所 有的记录都具有相同的属性值。
结点N1 类=0 类=1
计数 0 6
结点N2 类=0 类=1
计数 1 5
结点N3 类=0 类=1
计数 3 3
Gini 1 (0 / 6)2 (6 / 6)2 0 Entropy (0 / 6) log 2 (0 / 6) (6 / 6) log 2 (6 / 6) 0 Error 1 max[0 / 6,6 / 6] 0 Gini 1 (1/ 6)2 (5 / 6)2 0.278 Entropy (1/ 6) log 2 (1/ 6) (5 / 6) log 2 (5 / 6) 0.650 Error 1 max[1/ 6,5 / 6] 0.167
准确率
正确预测数 预测总数
f11
f11 f10
f 00 f01
f 00
同样,分类模型的性能也可以用错误率(error rate)来表示,其定 义如下:
错误率
错误预测数 预测总数
f11
f10 f 01 f10 f 01
f 00
目标:寻求最高的准确率或者最低的错误率
1、什么是决策树? 类似于流程图的树结构 每个内部节点表示在一个属性上的测试 每个分枝代表一个测试输出 每个叶节点代表类或类分布
(1)算法的第二步所创建的子女结点可能为空,即不存在与这些结点相关 联的记录。如果没有一个训练记录包含这样的结点相关联的属性值组合,这 种情形就可能发生。这时,该结点成为叶结点,类标号为其父结点上训练记 录中的多数类。
(2)在第二步,如果与 Dt 相关联的所有记录都具有相同的属性值(目标属 性除外),则不可能进一步划分这些记录。在这种情况下,该结点为叶结点, 其标号为与该结点相关联的训练记录中的多数类。
表示属性测试条件的方法 1、二元属性
二元属性的测试条件产生两个可能的输出。
体温
恒温
冷血
二元属性的测试条件
2、标称属性 由于标称属性有多个属性值,它的测试条件可以用两种方法表示。
婚姻状 况
婚姻状 况
单身 离异 多路划分
已婚
婚姻状 况
婚姻状 况
已婚
单身,离异
单身
已婚,离异 单身,已婚
二元划分(通过属性值分组)
椭圆状的星系
螺旋状的星系
分类任务的输入数据是记录的集合。每条记录也称实例或者样例, 用元组(x, y)表示,其中x是属性的集合,而y是一个特殊的属性, 指出样例的类标号(也成为分类属性或目标属性)。
分类?回归?
分类(classification)
通过学习得到一个目标函数(target function)f , 也成为分类模 型(classification model),把每个属性集x映射到一个预先定义的类标 号y。
好。增益 是一种可以用来确定划分效果的标准:
I ( parent)
k j 1
N(v j ) N
I (v j )
其中,I(•) 是给定结点的不纯性度量,N是父结点上的记录总数,k是 属性值的个数,N (v j ) 是与子女结点v j 相关联的记录个数。
内部结点(internal node):恰好有一条入边和两条或多条出边。
叶节点(leaf node)或终结点(terminal node):恰好有一条入边, 但没有出边。
体温
根结点
内部结点
恒温
冷血
胎生
是
否
非哺乳动 物
哺乳动物
非哺乳动 物
叶结点
一旦构造了决策树,对检验记录进行分类就很容易。从树的根结点
第4章 分类:基本概念、决策树与模型评估
4.1预备知识 4.2解决分类问题的一般方法 4.3决策树归纳 4.4模型的过分拟合 4.5评估分类器的性质 4.6比较分类器的方法
分类任务:确定对象属于哪个预定义的目标类
例子: 1、根据电子邮件的标题和内容检查 出垃圾邮件。 2、根据星系的形状对它们分类。
开始,将测试条件用于检验记录,根据测试结果选择适当的分支。沿着该 分支或者到达另一个内部结点,使用新的测试条件,或者到达一个叶结点。 到达叶结点之后,叶结点的类标号就被赋值给该检验记录。
名字 火烈鸟
体温 恒温
胎生 否
……
类标号
……
?
是
哺乳动 物
恒温
体温
胎生 否
非哺乳 动物
冷血
非哺乳 动物
如何建立决策树
分类技术非常适合预测或描述二元或标称类型的数据集,对序数分类不 太有效,因为分类技术不考虑隐含在目标类中的序关系。
分类技术是一种根据输入数据集建立分类模型的系统方法。
分 类 技 术
这些技术都使用一种学习算法确定分类模型,修改这个模型能够很好地 拟合输入数据中类标号和属性集之间的联系。学习算法得到的模型不仅 要很好地拟合输入数据,还要能够正确地预测未知样本的类标号。 训练算法的目标:建立具有很好的泛化能力的模型。
性别
车型
男
女 家用 运动
顾客ID
豪华 v1
v20
v10 v11
C0:6 C1:4
C0:4 C0:1 C1:6 C1:3
C0:8 C1:0
C0:1 C0:1 … C0:1 C0:0 … C0:0 C1:7 C1:0 C1:0 C1:1 C1:1
(a)
(b)
(c)
选择最佳划分的度量通常是根据划分后子女结点不纯性的度量。不纯的 程度越低,类分布就越倾斜。例如(0,1)的结点具有零不纯性,而均衡 分布(0.5, 0.5)的结点具有最高的不纯性。不纯性度量的例子包括:
Training Set
Class No No No No Yes No No Yes No Yes
Tid 11 12 13 14 15
10
Attrib1 Attrib2
No
Small
Yes
Medium
Yes
Large
No
Small
No
Large
Attrib3 55K 80K 110K 95K 67K
在Hunt算法中,通过将训练记录相继划分成较纯的子集,以递归方式 建立决策树。设Dt 是与结点t相关联的训练记录集,而y {y1, y2 , , yc} 是类标号,Hunt算法的递归定义如下。
(1)如果 Dt 中所有记录都属于同一个类 yt ,则t是叶结点,用 yt 标记。
(2)如果 Dt 中包含属于多个类的记录,则选择一个属性测试条件, 将记录划分成较小的子集。对于测试条件的每个输出,创建一个子女 结点,并根据测试结果将 Dt 中的记录分布到子女结点中。然后,对于 每个子女结点,递归地调用该算法。
年收入 >80k
是
否
<10k
年收入
<10k
(a)
{10k,25k} {25k,50k} {50k,80k} (b)
连续属性的测试条件
选择最佳划分的度量
有很多度量可以用来确定划分记录的最佳方法,这些度量用划分前和划分 后的记录的类分布定义。
设 p(i | t) 表示给定结点t中属于类i的记录所占的比例,有时,我们省略结点t, 直接用 pi 表示该比例。在两类问题中,任意结点的类分布都可以记作( p0 , p1) 其中 p1 1 p0 。