CART决策树的生成就是递归地构建二叉树的过程。对回归树用平方误差最小化准则,对分类树用基尼指数最小化准则。
给定训练集 D = {(x1, y1), (x2, y2),...(xN, yN)} 考虑如何生成回归树。
一个回归树对应输入空间的一个划分以及在划分单元上的输出值。假如数据空间被划分为R1~Rm单元,每个单元有一个固定的输出值Cm。
CART回归树模型表达式:
这样可以计算模型输出值与真实值的误差:
希望每个单元上的Cm,可以使平方误差最小化,易知当Cm为相应单元上所有实际值的均值时,达到最优:
如何生成这些被划分的单元?
下面是一组数据:
选择变量x(j)为切分变量,它的取值s为切分点,那么得到两个区域:
当 j 和 s 固定时,我们要找到两个区域的代表值C1、C2使各自区间上的平方差最小,
已知满足平方误差最小的C1、C2为区间上的平均,
那么对固定的 j 只需要找到最优的 s,
然后通过遍历所有的变量,我们可以找到最优的 j,
这样我们就可以得到最优对(j,s),并得到两个区间。
上述过程表示的算法步骤:
即:
- 考虑数据集 D 上的所有特征 j,遍历每一个特征下所有可能的取值或者切分点 s,将数据集 D 划分成两部分 D1 和 D2。
- 分别计算上述两个子集的平方误差和,选择最小的平方误差对应的特征与分割点,生成两个子节点。
- 对上述两个子节点递归调用步骤1、2,直到满足停止条件。