机器学习科研的十年,陈天奇( 四 )


它们的预测能力确实有限 , 但将多个树模型组合到一起(比如 bagged trees、随机森林或在 boosting 中) , 它们就可以变成一种强大的预测模型 。我们可以将树模型看作是将特征空间分割成几个不同的矩形和非重叠区域集合 , 然后它可以拟合一些简单的模型 。下图给出了使用 Boston Housing 数据得到的可视化结果:终端节点的数量和树的深度可以看作是树模型的复杂度度量 。
为了泛化这种模型 , 我们可以在复杂度度量上轻松地应用一个复杂度限制 , 或在终端节点的数量或叶权重的惩罚项上应用一个惩罚(XGBoost 使用的这种方法) 。因为学习这种树的结构是 NP 不完全的 , 所以学习算法往往会计算出一个近似的解 。这方面有很多不同的学习算法 , 比如 CART(分类和回归树)、C4.5 和 CHAID 。
这篇论文描述了 CART , 因为 MART 使用的 CART , XGBoost 也实现了一种与 CART 相关的树模型 。CART 以一种自上而下的方式生长树 。通过考虑平行于坐标轴的每次分割 , CART 可以选择最小化目标的分割 。在第二步中 , CART 会考虑每个区域内每次平行的分割 。在这次迭代结束时 , 最好的分割会选出 。
CART 会重复所有这些步骤 , 直到达到停止标准 。给定一个区域 Rj , 学习其权重 wj 通常很简单 。令 Ij 表示属于区域 Rj 的索引的集合 , 即 xi∈Rj , 其中 i∈Ij 。其权重是这样估计的:对于一个树模型 , 经验风险为:其中我们令 表示节点 j 处的累积损失 。在学习过程中 , 当前树模型用 和 表示 。我们可以计算所考虑的分割所带来的增益: 对于每一次分割 , 每个可能节点的每个可能分割都会计算这种增益 , 再取其中最大的增益 。
现在让我们看看缺失值 。CART 会使用替代变量(surrogate variable)来处理缺失值 , 即对于每个预测器 , 我们仅使用非缺失数据来寻找分割 , 然后再基于主分割寻找替代预测因子 , 从而模拟该分割 。比如 , 假设在给定的模型中 , CART 根据家庭收入分割数据 。如果一个收入值不可用 , 那么 CART 可能会选择教育水平作为很好的替代 。
但 XGBoost 是通过学习默认方向来处理缺失值 。XGBoost 会在内部自动学习当某个值缺失时 , 最好的方向是什么 。这可以被等价地看作是根据训练损失的减少量而自动「学习」缺失值的最佳插补值 。根据类别预测器 , 我们可以以两种方式处理它们:分组类别或独立类别 。CART 处理的是分组类别 , 而 XGBoost 需要独立类别(one-hot 编码) 。
这篇论文以列表的形式总结了树模型的优缺点:优点(Hastie et al., 2009; Murphy, 2012):? 容易解释? 可以相对快地构建? 可以自然地处理连续和分类数据? 可以自然地处理缺失数据? 对输入中的异常值是稳健的? 在输入单调变换时是不变的? 会执行隐式的变量选择? 可以得到数据中的非线性关系? 可以得到输入之间的高阶交互? 能很好地扩展到大型数据集缺点(Hastie et al., 2009; Kuhn and Johnson, 2013; Wei-Yin Loh, 1997; Strobl et al., 2006):? 往往会选择具有更高数量的不同值的预测器? 当预测器具有很多类别时 , 可能会过拟合? 不稳定 , 有很好的方差? 缺乏平滑? 难以获取叠加结构? 预测性能往往有限树提升在上述发展的基础上 , 现在我们将 boosting 算法与基本学习器树方法结合起来 。
提升后的树模型可以看作是自适应基函数模型 , 其中的基函数是回归树:提升树模型(boosting tree model)是多个树 fm 的和 , 所以也被称为树集成(tree ensemble)或叠加树模型(additive tree model) 。因此它比单个树模型更加平滑 , 如下图所示:拟合 Boston Housing 数据的叠加树模型的可视化在提升树模型上实现正则化的方法有很多:1. 在基函数扩展上进行正则化2. 在各个树模型上进行正则化3. 随机化一般来说 , 提升树往往使用很浅的回归树 , 即仅有少数终端节点的回归树 。

推荐阅读