(三) 回归树与集成

1. 回归树(CART)

回归树,也称分类与回归树(classification and regression tree),是二叉树,即左分支取值为“是”,右分支取值为“否”。

CART的决策流程与传统的决策树相同,但不同点在于,每个叶节点会产生一个预测分数。

以下图为例,目的是:判断每个家庭成员是否喜欢电子游戏。
可输入的一系列特征,包括:年龄、性别、电脑使用情况等。

以年龄特征为例,按照「年龄<20岁」的条件,可将5人划分为树的两个叶节点,并分别赋予两个叶节点分数。


2. 回归树集成(Regression Tree Ensemble)

通常来说,仅用一棵树来进行划分,往往过于简单,并不有效。因此有树的集成,即,综合多棵树的结果作为最终的预测结果。

如下图,以集成两颗树为例,对于单个样本(男生),可以通过累加其两颗树叶节点的评分,得到最终的评分。

关于树的集成

较为常用的树集成主要有两种:Bagging、Boosting。

  • Bagging集成:树之间是弱依赖,彼此并行,目的是降低方差,典型的例子为RF(Random Forest, 随机森林)。
  • Boosting集成:树之间是强依赖,彼此串行(即,后一棵树依赖前一棵树的结果),目的是降低偏差,典型的例子为GBDT(Gradient Boosting Decison Tree,梯度提升树)。


3. 模型及参数

3.1 模型

假设共有颗树,那么有公式:

其中,,为第个样本在第颗树的评分。,为包含颗回归树的函数空间。,为第个样本的预测值,即该样本在颗树评分的累加值。

3.1.2 参数

为了得到样本的预测值,我们需要得到树的结构和每个叶节点的评分。
从上述计算公式可以看到,该条件可以进一步简化为,已知每一颗回归树的函数。

因此,参数为单颗回归树函数构成的函数集合,即,。同样地,参数可以通过构造目标函数,结合已有训练样本求解。


4. 利用单一变量学习一颗树

方法:定义一个目标函数(损失函数+正则化项),然后优化它。

假设,需要预测某人在某一时间t,是否喜欢浪漫的音乐。在只有单一变量时间t输入的情况下,考虑学习一颗回归树。

那么,回归树可根据时间来切分构造。该过程等价于,学习分段的阶跃函数。相当于在不同的时间切点,去学习对浪漫音乐的喜爱程度。(如下图所示)

其中,目标函数包含损失函数和正则化项两部分。前者为训练误差,表示函数对每个数据点的拟合程度;后者为正则化项,表示函数的复杂度。

在上述问题中,函数的复杂度可以通过时间切点的个数,以及切分后每一部分高度(音乐喜爱程度)的L2范数来进行定义。

那么,如何较为直观地理解,欠拟合与过拟合呢?

如下图所示,左上为用户对某主题喜爱程度随时间变化的原始数据。
右上为过拟合示意图,当时间切点过多时,模型复杂度变高。
左下为欠拟合示意图,当切点位置不够准确时,训练误差变高。
右下为较理想的情况,很好地平衡了模型复杂度与训练误差之间的关系。

欠拟合与过拟合


5. 集成树的目标函数

假设共有颗树,则有公式:

其中,,为第个样本在第颗树的评分。,为包含颗回归树的函数空间。,为第个样本的预测值,即该样本在颗树评分的累加值。

因此,有目标函数为:

其中,表示训练误差,表示模型复杂度。

此时,定义的方法包括:树节点数目、树深度、叶节点权重的L2范数等。


6. 目标函数 vs 启发式

对于决策树来说,通常是启发式的。大多数启发式能很好地映射到目标函数:
信息增益 --> 训练误差
剪枝 --> 按节点数目定义的正则化项
最大深度 --> 限制函数空间
叶子值的平滑 --> 叶子权重的L2正则化





Introduction to Boosted Trees: Tianqi Chen

你可能感兴趣的:((三) 回归树与集成)