基于CART算法的回归树简介
模型表达式
考虑一个回归问题,记结局为
其中
1 数学上可以证明,当该常数为观察单位结局的均值时,预测误差最小。
递归二分裂
CART算法的基本步骤可以简述如下。首先,遍历当前数据集中所有特征的所有取值,寻找一个最优的变量-取值组合作为分裂点(选取规则请见下节介绍),划分出两个特征空间。然后,分别对位于不同空间的数据子集重复前述过程,直至满足某终止条件(例如:当前空间内的样本量低于特定阈值,或当前空间分裂后某子空间中的样本量低于特定阈值,或分裂已达一定深度等)。
特征空间的划分方式与特征的类型有关,但每次划分所形成的子空间均为两个,因此称递归二分裂。对于一个定量特征或有序定性特征,所有小于或等于所选分裂点的取值形成一个特征空间,而所有大于该分裂点的取值则形成另一个空间。对二分类或无序多分类的定性特征2,取其中一个取值形成一个子空间,其余多个取值则合并成另一个空间(在实际计算中,可以通过设置由各取值形成的多个0-1哑变量实现)。
2 另一种形式是将其中某些取值定义为一个子空间,剩余取值定义为另一个子空间。常见的策略是按某种规则对分类变量的取值进行排序(例如,按分类取值对观察单位进行分组,然后按各组中结局变量的均值大小进行排序),然后选择切分点将其分为两组。当某些分类能够较好地预测结局时,这种方式或可提高模型的预测准确性,但也将使模型更加复杂且难以解释。
以下描述给出了对两个定量特征
- 首次划分对原始特征空间
进行,若选定的分裂点为 ,则由此形成以下两个子空间: 。假设其所含样本量大于等于阈值,则进一步对其进行划分。若选定的分裂点为 ,则由此形成以下两个子空间: 。假设其所含样本量小于阈值,则不再对其进行划分。该空间可记为 。 。假设其所含样本量小于阈值,则不再对其进行划分。该空间可记为 。
。假设其所含样本量大于等于阈值,则进一步对其进行划分。若选定的分裂点为 ,则由此形成以下两个子空间: 。假设其所含样本量小于阈值,则不再对其进行划分。该空间可记为 。 。假设其所含样本量大于等于阈值,则进一步对其进行划分。若选定的分裂点为 ,则由此形成以下两个子空间: 。假设其所含样本量小于阈值,则不再对其进行划分。该空间可记为 。 。假设其所含样本量小于阈值,则不再对其进行划分。该空间可记为 。
图 1 显示了根据上述步骤进行划分后的结果; 图 2 则以树状图的形式对上述过程进行了描绘。在基于树的机器学习算法中,以术语“节点”表示上述特征空间;特别地,原始特征空间被称为“根节点”,不可继续划分的子空间则被称为“叶节点”,而在划分过程中所形成的其余各空间则被称为“内部节点”。一棵树包含一个根节点、若干个内部节点和若干个叶节点,每个节点均包含一个数据子集,且对应一个特征测试。
分裂点的选取
在处理回归问题时,CART算法使用均方误差MSE(Mean Squared Error)来衡量节点的不纯度;MSE越大,不纯度越高。CART算法的优化目标就是降低节点的不纯度。具体地说,若将某个父节点记为
其中,
树的剪枝
对由CART生成的回归树的剪枝使用的方法称为代价复杂性剪枝;该方法首先从训练集通过上述过程形成一棵完整的决策树
3 与预剪枝相比,后剪枝通常对树保留更多的分支,使其欠拟合风险小,且泛化性能往往优于预剪枝;但其训练时间更长。
其中,
剪枝的过程从下往上进行。遍历所有内部节点4,选择其中一个去除,使
4 一般是叶节点的父节点。
一个疑问
在写作本文时,我对递归二分裂与代价复杂性剪枝间的关系产生了一个疑问:假设递归二分裂过程中形成的一系列树的集合为
该问题可以借助 图 2 进行分析。可以发现,只有当递归二分裂过程中形成的分裂点的顺序正好与代价复杂性剪枝过程中合并的分裂点的顺序相反时,