我们时常会用到分类算法,比如将邮件标记为垃圾邮件,那么就使用到了分类算法。
决策树是如何工作的?
假设科学家发现了一种新物种。 我们怎么知道它是哺乳动物还是非哺乳动物? 一种方法是提出关于物种特征的一系列问题。 我们可能会问的第一个问题是该物种是冷血还是温血动物。 如果它是冷血,那么它肯定不是哺乳动物。 否则,它是鸟或哺乳动物。 在后一种情况下,我们需要提出一个后续问题:这些物种的雌性是否分娩生下了它们的幼崽? 那些分娩的物种肯定是哺乳动物,而那些不分娩的可能是非哺乳动物(除了产卵的哺乳动物,如鸭嘴兽和多刺的食蚁兽)。
前面的示例说明了如何通过询问一系列与测试数据属性相关的精心设计的问题来解决分类问题。每次我们收到答复时,都会询问后续问题,直到我们得出关于数据类别标签的结论。一系列问题及其可能的答案可以以决策树的形式组织,决策树是由节点和有向边组成的分层结构。图J.4显示了哺乳动物分类问题的决策树。 树有三种类型的节点:
根节点:没有输入边和有0个或者更多输出边。
内部节点:每个节点只有一个输入边和两个或多个输出边。
叶节点或终端节点:每个节点只有一个输入边而没有输出边。
在决策树中,为每个叶节点分配一个类标签。 非终结节点(包括根节点和其他内部节点)包含用于分隔具有不同特征的数据的属性测试条件。例如,在图J.4中显示的根节点使用属性体温来分离温血动物和冷血脊椎动物。由于所有冷血脊椎动物都是非哺乳动物,因此标记为非哺乳动物的叶节点被创建为根节点的右子节点。 如果脊椎动物是温血动物,则后来的属性“胎生”(Gives Birth)用于区分哺乳动物与其他温血动物(主要是鸟类)。