决策树

决策森林模型由决策树组成。决策森林学习算法(如随机森林)至少部分依赖于决策树的学习。

在本课程的这一部分中,您将学习一个小型示例数据集,并了解如何训练单个决策树。在接下来的部分中,您将了解如何组合决策树以训练决策森林。

YDF 代码

在 YDF 中,使用 CART 学习器训练单个决策树模型:

# https://ydf.readthedocs.io/en/latest/py_api/CartLearner
import ydf
model = ydf.CartLearner(label="my_label").train(dataset)

模型

决策树是一种由一系列“问题”组成的模型,这些“问题”以树的形状分层整理。这些问题通常称为“条件”、“分屏”或“测试”。在此类中,我们会使用“条件”一词。每个非叶节点都包含一个条件,而每个叶节点都包含一个预测结果。

植物树通常以根在底部生长;不过,决策树通常以根部(第一个节点)在顶部表示。

包含两个条件和三个叶的决策树。第一个条件(根)是 num_legs >= 3;第二个条件是 num_eyes >= 3。三叶分别是企鹅、蜘蛛和狗。

图 1. 简单的分类决策树。绿色图例不属于决策树。

 

决策树模型的推理方法如下:根据条件将样本从根节点(位于顶部)路由到其中一个叶节点(位于底部)。已覆盖的叶值就是决策树的预测值。 这组访问节点称为“推断路径”。例如,请考虑以下特征值:

num_legs num_eyes
4 2

预测结果为 dog。推理路径为:

  1. num_legs ≥ 3 → 是
  2. num_eyes ≥ 3 → 否

插图与图 1 相同,但此图显示了两种条件下的推理路径,在狗的叶子处终止。

图 2. 以样本 *{num_legs : 4, num_eyes : 2}* 的叶 * dog* 最终的推理路径。

 

在前面的示例中,决策树的叶子包含分类预测;也就是说,每片叶子都包含一组可能的物种中的一个动物物种。

同样,决策树也可以用回归预测(数值)给叶加标签来预测数值。例如,下面的决策树会预测 0 到 10 之间的动物可爱数值数字。

一种决策树,其中每个叶项都包含不同的浮点数。

图 3. 用于进行数值预测的决策树。