内容提要:
* CART-回归树算法解读
* CART-回归树例题讲解
点击蓝字 |关注我们
欢迎回来,在上期的推送中,我们给大家介绍了CART算法分类树的生成方法【十分钟 机器学习 系列课程】 讲义(二十七):CART-分类树算法,这期咱们继续来学习CART算法中回归树的生成过程。
还记得CART算法的含义吗?没错,CART算法展开就是「Classification and Regression Tree」,对应的就是分类与回归树,在这里就是用树形结构来解决分类和回归的问题。
❝❞
如果输出变量是「离散」的,对应的就是「分类」问题。 如果输出变量是「连续」的,对应的就是「回归」问题。
那么这期咱们来看看当输出变量「连续」时,CART「回归决策树」是怎么生成的。
壹 CART-回归树模型解读
1.划分连续数据
既然是决策树,那么输出的一定就是叶子结点,对于「连续变量」而言,我们可以按照一定的要求将连续变量进行划分。
❝假设有:「输出」: 能否按照 来分区间划分呢?显然是「不行的哦」,因为我们这里是有监督的「回归模型」,必须要有输入有输出,因此应该是以「输入」进行划分。
❞
比如在基尼指数中提到的【十分钟 机器学习 系列课程】 讲义(二十六):CART算法-基尼指数选桃子的例子。
对于「甜度」这个特征而言,有好吃的桃子和不好吃的桃子。那么我们就可以把这些「连续变量」的样本拿来进行划分:
假如:
「输入」:用 来表示由不甜到甜的程度
「输出」:用 来表示由不好吃到好吃的程度
| 甜度 | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 |
|---|---|---|---|---|---|
| 好吃程度 | 5.5 | 7.6 | 9.5 | 9.7 | 8.2 |
在对数据划分时,就可以从「甜度」这个输入量来进行划分,但是要注意哦!由于CART算法是二叉树,所以我们「每次划分只能划分成两类」,比如:甜度 和甜度 这样两类,然后可以再继续在甜度 这个范围内,以此类推,选择最优切分点继续划分。
右上角的角标数意味着分类的次数,右下角标数代表着所属的类,这就意味着,输出单元最终不只是 个单元,也可以是多个单元。
搞清楚了连续数据的划分,接着我们就可以继续看看如何生成回归树模型。
2.回归树模型
假设将输入空间划分成 个单元, ,并在每个单元 上有一个固定的输出值 ,回归树模型可以表示为:
这里的 就是CART回归树模型, 代表输出的类, 就是指示性函数。这里该怎么理解呢?举个栗子,假设输入和输出变量如下表:
| 输入 | R1 |
R2 |
... | Rm |
|---|---|---|---|---|
| 输出 | c1 |
c2 |
... | cm |
就是指当 取 , 取 。
这样就意味着,对于某个输出单元也就是类 而言,当输入单元 和它一致时就存在,如果不一致时,就没有啦。这样把所有输入单元对应的类求和之后,便是最终的回归树模型。
那么该怎么找到这个切分点呢?
3.平方误差和最优输出
这时我们就需要通过「平方误差最小化」来找到最优切分点了。
❝选择第 个变量和取值 ,分别作为切分变量和切分点,并定义两个区域:
❞
瞧,这里和上面桃子甜度切分的思路是完全一致的哦。接着,咱们就用「平方误差最小化」来寻找最优切分变量 和最优切分点 :
这个公式意味着,将输出变量按照输入变量分为了两类,然后要求出来每次分类后的各个分类的平方误差最小值之和,也就意味着整体的最小平方误差,「平方误差最小,意味着分类和实际最吻合」。其中:
这里可以理解成,如果我们想要「平方误差最小」,那么就是将每次分类后的 和 设置为对应的每个区域内的输出变量的平均值。
4.停止条件
那么我们什么时候停止回归呢?这里就是你说了算哦,可以是将输出变量分为两个类,也可以是直到没有多余的样本点。
输出的就是一棵「CART二叉树」。
算法咱们就解读到这里,接下来我们就来一起上例题。
贰 CART算法回归树案例讲解
还是刚才桃子的例子,咱们不妨就一起来计算一下这个回归树的模型。
1.以甜度特征进行回归计算
Case 1 以甜度 进行划分
可以将表格里的连续数据划分成 和 两类。
类是:
| 甜度 | 0.05 |
|---|---|
| 好吃程度 | 5.5 |
类是:
| 甜度 | 0.05 | 0.15 | 0.25 | 0.35 | 0.45 |
|---|---|---|---|---|---|
| 好吃程度 | 5.5 | 7.6 | 9.5 | 9.7 | 8.2 |
可以得出: 类因为只有一个值,因此平均值 是它本身为 。 类的平均值就是:
接着代入平方误差公式中:
Case 2 以甜度 进行划分
同理,计算出平方误差和结果为 。
Case 2 以甜度 进行划分
平方误差和结果为 。
Case 2 以甜度 进行划分
平方误差和结果为 。
❝这样,从四个分类中,我们选取最小值,也就是当甜度 时,作为最优切分点,同时输出的「CART回归树模型」就是:
❞
当然我们还可以对 区域进行回归划分,这就要取决于你的停止条件,如果说是继续分成三类,那么就可以按照相同的思路进行计算啦。
其实,细心的你有没有发现,通过对「连续」变量进行划分,就可以转换为「离散」的变量来进行计算,那么就和之前的分类树模型也是相通的方法,这也就是为什么常见的都是CART分类树模型啦。
好啦,关于「CART回归树算法」的讲解就到这里,下期我们将继续讲解「CART算法的剪枝」,感兴趣的小伙伴们记得「点赞+收藏+在看」。我们下期不见不散~
欢迎大家关注简博士的B站和公众号,在公众号私信“入群”,可以与小伙伴们一起讨论问题哦。

