条件的类型

本单元重点介绍用于构建决策树的不同类型的条件。conditions

轴对齐与倾斜条件

轴对齐条件仅涉及一个地图项。倾斜条件涉及多个特征。例如,以下是一个轴对齐条件:

num_legs ≥ 2

虽然如下是强制性条件:

num_legs ≥ num_fingers

通常,决策树仅使用轴对齐的条件进行训练。但是,倾斜分屏功能更强大,因为它们可以表达更复杂的模式。有时,倾斜式拆分有时会产生更好的结果,但代价是更高的训练和推理成本。

YDF 代码
在 YDF 中,决策树默认使用轴对齐条件进行训练。您可以使用 split_axis="SPARSE_OBLIQUE" 参数启用决策倾斜树。

轴对齐条件是“num_legs >= 3”。倾斜条件为“num_legs + weight * 5 >= 12”。

图 4. 轴对齐条件和倾斜条件的示例。

 

对上述两个条件绘制图表可以产生以下特征空间分离:

重量与 num_legs 的图表。轴对齐条件不会忽略权重,因此只是一条垂直线。倾斜条件显示负斜线。

图 5. 图 4 中条件的特征空间分离。

 

二元和非二元条件

具有两种可能结果(例如 true 或 false)的条件称为“二元条件”。仅包含二元条件的决策树称为二元决策树。

非二元条件具有两种以上的结果。因此,非二元条件比二元条件更强大。 包含一个或多个非二元条件的决策称为非二元决策树。

二元决策树与非二元决策树的比较。二元决策树包含两个二元条件;非二元决策树包含一个非二元条件。

图 6:二元决策树与非二元决策树。

 

功率过大的条件也更有可能过拟合。因此,决策森林通常使用二元决策树,因此本课程重点介绍此类决策树。

最常见的条件类型是阈值条件,表示方式如下:

featurethreshold

例如:

num_legs ≥ 2

还有其他类型的条件。以下是其他常用的二元条件类型:

 

表 2. 二元条件的常见类型。

名称 条件 示例
阈值条件 $\mathrm{feature}_i \geq \mathrm{threshold}$ $\mathrm{num\_legs} \geq 2$
等式条件 $\mathrm{feature}_i = \mathrm{value}$ $\mathrm{species} = ``cat"$
内嵌条件 $\Mathrm{feature}_i \在\mathrm{集合}$ $\mathrm{species} \in \{``cat", ``dog", ``bird"\}$
倾斜条件 $\sum_{i} \mathrm{weight}_i \mathrm{feature}_i \geq \mathrm{threshold}$ $5 \ \mathrm{num\_legs} + 2 \ \mathrm{num\_eyes} \geq 10$
功能缺失 $\mathrm{feature}_i \mathrm{is} \mathrm{缺失}$ $\Mathrm{num\_legs} \mathrm{is} \mathrm{Missing}$