机器学习 | 决策树之回归树

机器学习 | 决策树之回归树

    上文提到决策树不仅可用于分类,还可进行回归,本文将继续记录回归决策树。


前言

    上一文提到决策树不仅可以进行分类,也可以进行回归!

    与线性回归不同,回归树是将“空间”进行划分,每个空间则对应一个统一的预测值。


一、回归树的构建方法

    当面对一个回归问题时,如特征向量为: 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=n1jRjyj

与线性回归类似,需要一个损失函数对回归的效果进行评估,采用平方残差和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 X1t1 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)步中对应的子树。

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值