携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
本节介绍决策树分类器,它是一种简单但广泛使用的分类技术。
决策树是如何工作的?
为了说明如何使用决策树进行分类,请考虑上一节中描述的更简单的脊椎动物分类问题。 我们不是将脊椎动物分为五个不同的物种群,而是将它们分为两类:哺乳动物和非哺乳动物。
假设科学家发现了一种新物种。 我们怎么知道它是哺乳动物还是非哺乳动物? 一种方法是提出关于物种特征的一系列问题。 我们可能会问的第一个问题是该物种是冷血还是温血动物。 如果它是冷血,那么它肯定不是哺乳动物。 否则,它是鸟或哺乳动物。 在后一种情况下,我们需要提出一个后续问题:这些物种的雌性是否分娩生下了它们的幼崽? 那些分娩的物种肯定是哺乳动物,而那些不分娩的可能是非哺乳动物(除了产卵的哺乳动物,如鸭嘴兽和多刺的食蚁兽)。
前面的示例说明了如何通过询问一系列与测试数据属性相关的精心设计的问题来解决分类问题。每次我们收到答复时,都会询问后续问题,直到我们得出关于数据类别标签的结论。一系列问题及其可能的答案可以以决策树的形式组织,决策树是由节点和有向边组成的分层结构。图J.4显示了哺乳动物分类问题的决策树。 树有三种类型的节点:
根节点: 没有输入边和有0个或者更多输出边。
内部节点: 每个节点只有一个输入边和两个或多个输出边。
叶节点或终端节点: 每个节点只有一个输入边而没有输出边。
在决策树中,为每个叶节点分配一个类标签。 非终结节点(包括根节点和其他内部节点)包含用于分隔具有不同特征的数据的属性测试条件。例如,在图J.4中显示的根节点使用属性体温来分离温血动物和冷血脊椎动物。由于所有冷血脊椎动物都是非哺乳动物,因此标记为非哺乳动物的叶节点被创建为根节点的右子节点。 如果脊椎动物是温血动物,则后来的属性“胎生”(Gives Birth)用于区分哺乳动物与其他温血动物(主要是鸟类)。
一旦构建了决策树,对测试数据进行分类就很简单。从根节点开始,我们将测试条件应用于数据,并根据测试结果跟随相应的分支。这将引导我们到另一个内部节点,并为其应用新的测试条件,或者引导到叶节点。然后将与叶节点关联的类标签分配给数据。作为说明,图J.5跟踪决策树中用于预测火烈鸟类标签的路径。 该路径终止于标记为非哺乳动物的叶节点。