分类回归树(\(classification\ and\ regression\ tree,\ CART\))既可用于分类也可用于回归。

\(CART\)分类树、\(CART\) 回归树统称 \(CART\)

\(CART\) 学习分三步:特征选择、决策树的生成、剪枝。

\(CART\) 决策树是二叉树。对 \(CART\) 回归树用均方误差最小化准则,\(CART\) 分类树用基尼系数最小化(\(Gini\ index\))准则,进行特征选择,生成二叉树。


假设 \(X、Y\) 是输入、输出变量,\(Y\)

\[D = \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} \]

生成回归树。

一颗回归树对应着输入空间(即特征空间)的一个划分以及在划分单元上的输出值。假设已将输入空间划分为 \(M\) 个单元 \(R_1,R_2,...,R_M\),并且在每个单元 \(R_m\) 上有一个固定的输出值 \(c_m\),于是回归树模型为

\[f(x) = \sum_{m=1}^{M} c_mI(x \in R_m) \]

当输入空间划分确定时,可用平方误差 \(\sum_{x_i \in R_m} (y_i - f(x_i))^2\) 来表示回归树对训练数据的预测误差,用平方误差最小的准则求解每个单元上的最优输出值。易知,单元 \(R_m\) 上的 \(c_m\) 的最优值 \(\hat{c}_m\) 是 \(R_m\) 上的所有输入实例 \(x_i\) 对应的输出 \(y_i\)

\[\hat{c}_m = ave(y_i|x_i \in R_m) \]


CART回归树(或最小二乘回归树)生成算法:

基于均方误差最小化来进行模型求解的方法称为最小二乘法。

输入:训练集 \(D\);

输出:回归树 \(f(x)\)。

在训练集所在的输入空间中,递归地将每个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉树。

(1) 选择最优切分变量 \(j\) 、切分点 \(s\)。


\[\tag{1} \underset{j,s}{min} \begin{bmatrix} \underset{c_1}{min} \ \sum_{x_i \in R_1(j,s)} (y_i - c_1)^2 + \underset{c_2}{min} \ \sum_{x_i \in R_2(j,s)} (y_i - c_2)^2 \end{bmatrix} \]


遍历变量 \(j\),对固定的切分变量 \(j\) 扫描切分点 \(s\),选择使式 \((1)\) 达到最小值的 \((j,s)\)。

(2) 用选定的 \((j,s)\)


\[R_1(j,s) = \{x|x^{(j)} \leqslant s\},\ \ \ \ R_2(j,s) = \{x|x^{(j)}>s\} \\ \hat{c}_m = \frac{1}{N_m} \ \sum_{x_i \in R_m(j,s)} y_i,\ \ \ \ x \in R_m,\ \ \ \ m=1,2 \]


\(N_m\)

(3) 继续对两个子区域调用步骤 \((1),(2)\),直到满足停止条件。

(4) 将输入空间划分为 \(M\) 个区域 \(R_1,R_2,...,R_M\),生成回归树:


\[f(x) = \sum_{m=1}^{M} \hat{c}_mI(c \in R_m) \]



即:

  1. 考虑数据集 \(D\) 上的所有特征 \(j\),遍历每一个特征下所有可能的取值即切分点 \(s\),将数据集分为两部分 \(R_1\)、\(R_2\)。
  2. 分别计算两个子集的均方误差和,选择最小的均方误差对应的切分特征、切分点,生成两个子区域。
  3. 对子区域递归调用步骤 \(1\)、\(2\),直到满足停止条件。


例 \(1\):数据集 \(D\)。

spark 决策树 回归 决策树 回归树_回归树

选择切分特征 \(0\),切分点 \(3\),将数据分为两部分。

spark 决策树 回归 决策树 回归树_决策树_02

同样,选择切分特征 \(1\),切分点 \(20\),将数据分为两部分。

spark 决策树 回归 决策树 回归树_回归树_03

以上就是切分特征、切分点的选择。