本文基于CMU课件:http://www.stat.cmu.edu/~cshalizi/350-2006/lecture-10.pdf

1. 从线性回归到回归树

拟合复杂的非线性数据时,线性回归不再可取。于是引出下面的思路:将特征空间分割成小的区域,使得小区域内的数据更可控一些;将小的区域再分成小的区域(递归的思想),直到在最终得到的小区域中可以用简单的模型(如线性回归)来拟合数据。

回归树就是采用上述思想的一种模型,它用树的形式来表示上述递归过程。树的节点表示一个提问(如某特征是否>50,某特征所属类别是否为A,等等),树的分支代表回答,树的叶子表示最终得到的小区域。

A. 从上述提问可以看出,各特征变量不必是同一类型的,可以是:(a) 连续变量,(b) 离散且有序的变量,(c) 类别型(Categorical)变量,等等。

B. 上述提问也可以不是二元的提问,但是其实都可以退化成二元的。

C. 每个提问可以涉及不止一个变量。

2. 叶子模型的选择

通常在叶子上使用的简单model是一个常数:设(x1, y1), (x2, y2), . . . (xc, yc)是属于叶子节点 d 的样本点,则 d 中的模型为:

回归树 squared error 重要性特征是从大到小排序吗 cubist回归树_子节点

如果各自变量都是数值型的,则在叶子节点中使用线性回归也是可以的。但是通常叶子节点中的样本数比较少,并且较为集中,其回归面(regression surface)接近于一个常数,况且使用常数更简单,这就是回归树通常使用常数模型的原因。

3. 区域的分割

回归树中,最重要的问题在于区域的分割。这里使用信息论的观点来考虑这个问题。

回归树包含了一个连续做决策的过程(回答一系列提问),我们希望在这个过程中最大化我们能够获得的关于输出值 Y 的信息量。例如,这某个节点处,我们可以判断“X1 是否大于50”,也可以判断“X2是否为A”,我们会选择更有助于获取最终输出值的那个提问。

不过,在回归树中通常不使用信息量与熵的概念,取而代之的是平方误差和:

回归树 squared error 重要性特征是从大到小排序吗 cubist回归树_回归树_02

其中,

回归树 squared error 重要性特征是从大到小排序吗 cubist回归树_线性回归_03

。在分割区域时,遍历每个自变量 s 的每个取值 j,看看在哪个组合 (s, j) 下进行分割能够使得 S 最小。平方误差和代表着数据的混乱程度,如果经过某个划分,平方误差和变小了,意味着数据的混乱程度较少了,我们获得的信息量就增加了。

4. 迭代的终止条件

从上面均方误差的表达式可以看出,如果每个样本点独占一个叶子,那么 S 为 0 。这其实意味着过拟合。通常,我们可以设置以下终止条件:

a. 均方误差的下降小于某个门限值。

b. 叶子节点中的样本数小于某个阈值。

5. 剪枝算法

剪枝算法采用了交叉验证的思想:将数据集分割为数据集与交叉验证集,在数据集上生成树,然后在交叉验证集上修剪树(删去两个叶子节点,使其父亲成为叶子),使得均方误差减小。