机器学习 | 决策树之回归树
上文提到决策树不仅可用于分类,还可进行回归,本文将继续记录回归决策树。
前言
上一文提到决策树不仅可以进行分类,也可以进行回归!
与线性回归不同,回归树是将“空间”进行划分,每个空间则对应一个统一的预测值。
一、回归树的构建方法
当面对一个回归问题时,如特征向量为: X = [ x 1 x 2 x 3 x 4 . . . x j ] X =\begin{bmatrix} x_1\\ x_2 \\x_3 \\x_4 \\...\\x_j\end{bmatrix} X=⎣⎢⎢⎢⎢⎢⎢⎡x1x2x3x4...xj⎦⎥⎥⎥⎥⎥⎥⎤,即对应数据的多个维度,回归树所做的内容是:
- 将空间X划分为多个不重叠的领域 R 1 , R 2 , . . . , R J R_1,R_2,...,R_J R1,R2,...,RJ
- 其中,每一个划分出来的空间对应一个标签值 y y y(即预测结果),标签值是根据该区域内的总样本数平均化得出的。即 y R j = 1 n ∑ j ∈ R j y j y_{R_j}=\frac{1}{n}\sum_{j∈R_j}y_j yRj=n1∑j∈Rjyj
与线性回归类似,需要一个损失函数对回归的效果进行评估,采用平方残差和RSS进行评估:
内层
∑
\sum
∑就是将该区域内所有的样本预测值和真实值的差值平方进行加和;
外层
∑
\sum
∑就是遍历所有划分出来的区域。
但我们仔细想一下,如果采用这种方法来回归,这个计算量是惊人的,因为空间划分有太多的情况,为了处理这种问题,我们常使用一种方法对划分空间提出了简化要求!
这种方法称作“递归二分法”!
二、递归二分法
什么是递归二分?顾名思义,树的每次分裂都以二叉树的形式分裂。当我们初步根据特征及其最佳划分点分裂出了2个子结点(即空间)
R
J
R_J
RJ后,不断从当前位置,继续将该空间的样本再次划分成2份!
划分方案:
- 自顶向下:从所有样本开始,不断从当前位置,把样本切分到2个分支里
- 贪婪:每一次的划分,只考虑当下划分的最优,不回头考虑先前的划分
优化原则:
- 选择切分的维度 x j x_j xj(即将数据的每一个特征)以及切分点s,使得再次划分后的回归树RSS结果最小
通俗来说,当我们初步划分出了两个空间后 R j R_j Rj,接下来,将继续根据损失函数RSS开始选择维度,以及该维度下的切分点t再次将 R j R_j Rj空间进行二分。
如下图所示,假如回归树的特征向量是2个维度 { X 1 , X 2 } \{X_1,X_2\} {X1,X2},若第一次分裂时,通过计算得知,当选取属性 X 1 X_1 X1,最佳切分点为 t 1 t_1 t1时得到的损失函数RSS最小,那么本次分裂则可根据 X 1 X_1 X1及其 t 1 t_1 t1划分出两片区域 { R 1 , R 2 } \{R_1,R_2\} {R1,R2}。
- X 1 ≤ t 1 X_1\le t_1 X1≤t1, y i = y R 1 y_i = y_{R1} yi=yR1
- X 1 > t 1 X_1> t_1 X1>t1, y i = y R 2 y_i = y_{R2} yi=yR2
划分出
R
1
,
R
2
R_1,R_2
R1,R2后,继续进行树的第二次分裂,若本次分裂根据特征
X
2
X_2
X2找到最佳切分点
t
2
t_2
t2,则可将上图中原
R
1
R_1
R1中的区域再次进行二分。类似的,原样本空间则可根据每一次属性及切分点的选择,以二分裂的形式每次更新2片空间,直到符合某个停止准则,如我们在分类决策树中讨论到的前剪枝中的停止准则。
三、回归树的剪枝
同样的,回归优化的过程同线性回归一样,在通过降低损失函数来优化模型的过程中,模型容易陷入“过拟合”的状态。同样需要引入“正则化项”作为惩罚。
与线性回归区别的是,由于回归树并不是数值模型,所以正则化项不可以引入如L2正则化项这种数值项,因此回归树里的正则化项与叶子结点相关:
这里的
∣
T
∣
|T|
∣T∣表示树T的结点数,当超参数
α
>
1
\alpha>1
α>1时,树的叶子结点越多,代表模型越复杂,终端叶子结点数多的树将为它的复杂性付出代价,所以使上式取到最小值的子树会变得更小。
总结
回归决策树算法
————————————————
1.利用递归二叉分裂在训练集中生成一额大树,只有当终端结点包含的观测值个数低于某个最小值时才停止。
2.对大树进行代价复杂性剪枝,得到一系列最优子树,子树是α \alphaα的函数。
3.利用K折交叉验诞选择α。具体做法是将训练集分为K折。对所有k = 1 , 2 , 3 , ⋯ K; 对训练集上所有不属于第k折的数据重复第(1)步~第(2)步得到与α对应的子树,并求出上述子树在第k折上的均方预测误差。
4.每个α会有相应的K个均方预测误差,对这K个值求平均,选出使平均误差最小的α。
5.找出选定的α在第(2)步中对应的子树。