大家都知道,决策树能够做分类问题,但是到了CART(classsiification and regression tree)算法发明的时候,树又能做分类也能做回归。感谢这位博主分享这么通俗易懂的博客,我只是对这篇博客进行整理,作为自己学习之用
1.原理描述
一个回归树对应这输入空间(即特征空间)的一个划分以及在划分单元上的输出值。分类树中,我们采用信息论的方法,通过计算选择最佳划分点。而在回归树中,采用的是启发式的方法。假如我们有n个特征,每个特征有s_i(i\in(1,n))个取值,那我们遍历所有特征,尝试该特征所有取值,对空间进行划分,直到取到特征j的取值s,使得损失函数最小(回归树的损失函数用平方差),这样就得到了一个划分点。公式如图:
![img_6201427e67c79b1408372d07166fad9d.gif](https://yqfile.alicdn.com/img_6201427e67c79b1408372d07166fad9d.gif)
假设将输入空间划分为M个单元: R_1, R_2,..., R_m,那么每个区域的输出值就是: c_m = ave(y_i|x_i\in R_m),也就是该区域内所有点y值的平均数。
举个例子。如下图所示,假如我们想要对楼内居民的年龄进行回归,将楼划分为3个区域 R_1, R_2, R_3(红线),那么 R_1的输出就是第一列四个居民年龄的平均值, R_2的输出就是第二列四个居民年龄的平均值, R_3的输出就是第三、四列八个居民年龄的平均值。
![img_cd4304fd0251b3a5ac6dfcf4dcd76b06.png](https://yqfile.alicdn.com/img_cd4304fd0251b3a5ac6dfcf4dcd76b06.png?x-oss-process=image/resize,w_1400/format,webp)
2.算法描述
![img_6b009e9d6d68b92752d5cb1ec6f181c8.png](https://yqfile.alicdn.com/img_6b009e9d6d68b92752d5cb1ec6f181c8.png?x-oss-process=image/resize,w_1400/format,webp)
回归树
3.一个实例
依照个人的见解,其实树模型无论是回归还是分类,都是用关于自变量的不等式将整个空间分成一个个的小区域,然后依照提交对应哪个区域是几(回归)或者哪个区域是哪个类别(分类)。下图是回归树的图
![img_1881cbb0f39bfb50e8419d3bafebfefb.png](https://yqfile.alicdn.com/img_1881cbb0f39bfb50e8419d3bafebfefb.png?x-oss-process=image/resize,w_1400/format,webp)
下面这个实例我就直接贴了。
![img_125952c2ce1bbed833fb18ed470ce042.png](https://yqfile.alicdn.com/img_125952c2ce1bbed833fb18ed470ce042.png?x-oss-process=image/resize,w_1400/format,webp)
![img_1487d7734dd22ebc1b50f3388e278547.png](https://yqfile.alicdn.com/img_1487d7734dd22ebc1b50f3388e278547.png?x-oss-process=image/resize,w_1400/format,webp)
![img_1487d7734dd22ebc1b50f3388e278547.png](https://yqfile.alicdn.com/img_1487d7734dd22ebc1b50f3388e278547.png?x-oss-process=image/resize,w_1400/format,webp)
![img_ed329dfb645028dd819cab181cdb9360.png](https://yqfile.alicdn.com/img_ed329dfb645028dd819cab181cdb9360.png?x-oss-process=image/resize,w_1400/format,webp)
实际上,回归树总体流程类似于分类树,分枝时穷举每一个特征的每一个阈值,来寻找最优切分特征j和最优切分点s,衡量的方法是平方误差最小化。分枝直到达到预设的终止条件(如叶子个数上限)就停止。