18.3.1 作为执行元件的决策树
一棵决策树将用属性集合描述的事物或情景作为输入,并返回一个“决策”——针对输入的预测输出值。输入的属性可以是离散的,也可以是连续的。我们暂时假设是离散的输入。输出值也可以是离散的或是连续的;学习一个离散值函数,被称为分类学习;学习一个连续函数则称为回归。我们将集中于布尔分类,其中每个实例被分为真(正)或假(反)两类。
一棵决策树通过执行一个测试序列得到它的决策。树中的每个内部节点对应于一个属性值的测试,从节点出发的分支被标记上可能的测试值。每个叶节点指定了当到达该叶节点时要返回的值。决策树的表示方法看起来对人而言是很自然的;确实,很多介绍“怎么做”的手册(例如,汽车修理手册)都是整个写成一棵跨越数百页的单一决策树的。
一个多少简单些的例子是由判断是否要在餐馆等座位的问题提供的。这里的目的是学习对于目标谓词WillWait的定义。为了建立这个学习问题,我们必须首先规定哪些属性可用于描述该领域内的实例。在第十九章中,我们将看到如何使该任务自动执行。目前,让我们假设是在如下属性的列表基础上进行决策的:
1.Alternate(改变):附近是否有另一家合适的餐馆。
2.Bar(酒吧):该餐馆中供顾客等候的酒吧区是否舒适。
3.Fri/Sat(周五/周六):若是周五或周六,则为真。
4.Hungry(饥饿):我们是否饥饿。
5.Patrons(顾客):该餐馆中有多少顾客(值为None(没人)、Some(一些)或Full(满座))。
6.Price(价格):餐馆的价格范围($,$$,$$$)。
7.Raining(下雨):外面是否在下雨。
8.Reservation(预约):我们是否预约过。
9.Ty p e(类型):餐馆的种类(法式、意大利式、泰式或汉堡店)。
10.WaitEstimate(等候时间估计):餐馆主人估计的等候时间(0~10分钟,10~30,30~60,>60)。
我们中的一员(SR——斯图尔特·罗素,本书的第一作者)对该领域通常采用的决策树如图 18.2 所示。注意这棵树并没有用到Price和Type这两个属性,实际上是考虑到它们与该问题无关。实例是从树的根节点开始处理的,并沿着适当的分支到达叶节点。例如,Patrons=Full而且WaitEstimate=0~10的实例会被分类为正例(即“是”,我们要等座位)。
图18.2 决定是否要等座位的决策树
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。