关于CART的原理我相信各位都有看过,是不是有些晕呢?没关系,这里我给大家讲个例子,你就理解原来CART回归树生成这么简单啊。。。
首先建立一个数据集,为了方便,就取少量数据,如下表,数据的创建仅作参考

臂长(m)年龄(岁)体重(kg)身高(m)(标签值)
0.55201.1
0.77301.3
0.921701.7
训练数据中臂长,年龄,体重为特征变量X,身高为标签值Y,下面开始种树
1、首先将第一个特征的第一个值作为切割点(0.5),则划分的两个空间记为R1,R2
R 1 = { 0.5 , 5 , 20 } R_{1}=\left \{ 0.5,5,20 \right \} R1​={0.5,5,20} R 2
= { ( 0.7 , 7 , 30 ) , ( 0.9 , 21 , 70 ) } R_{2}=\left \{
(0.7,7,30),(0.9,21,70) \right \}R2​={(0.7,7,30),(0.9,21,70)}
c 1 = { 1.1 } c_{1}=\left \{ 1.1 \right \} c1​={1.1} c 2 = 1 2 ( 1.3 + 1.7 )
= 1.5 c_{2}=\frac{1}{2}\left ( 1.3+1.7 \right )=1.5c2​=21​(1.3+1.7)=1.5
则平方误差((真实值-预测值)的平方)

m ( 0.5 ) = ( 1.1 − 1.1 ) 2 + ( 1.5 − 1.3 ) 2 + ( 1.5 − 1.7 ) 2 = 0.08 m\left
( 0.5 \right )=(1.1-1.1)^2 +(1.5-1.3)^2+(1.5-1.7)^2 =0.08m(0.5)=(1.1−1.1)2+(1.5−
1.3)2+(1.5−1.7)2=0.08
2、将第一个特征的第二个变量(0.7)作为切割点,类比第一步,划分的两个空间记为R1,R2
R 1 = { ( 0.5 , 5 , 20 ) , ( 0.7 , 7 , 30 ) } R_{1}=\left \{
(0.5,5,20),(0.7,7,30) \right \}R1​={(0.5,5,20),(0.7,7,30)} R 2 = { ( 0.9 , 21
, 70 ) } R_{2}=\left \{(0.9,21,70) \right \}R2​={(0.9,21,70)}
c 1 = 1 2 ( 1.1 + 1.3 ) = 1.2 c_{1}=\frac{1}{2}\left ( 1.1+1.3 \right )=1.2 c1
​=21​(1.1+1.3)=1.2 c 2 = { 1.7 } c_{2}=\left \{ 1.7 \right \} c2​={1.7}
则平方误差 m ( 0.5 ) = 0.02 + 0 = 0.02 m\left ( 0.5 \right )=0.02+0 =0.02 m(0.5)=0.
02+0=0.02

所以对于固定了特征后,从上面的MSE得出,所以特征“臂长=0.7”为切分点。同理。对于特征年龄,也可以采取上述的方式寻找最佳切分点,这样遍历了所有的特征,寻找平方误差最小的对(j,s),j表示第j个特征,s表示第j个特征的第s个值。本例中最佳切分点为0.7,所以以此将特征空间划分为两个区域(R1,R2).
3、对于第二步得到的R1h和R2,分别再次求最佳切分点,递归操作,过程同1~2。

技术
©2020 ioDraw All rights reserved
【2020最牛小程序:你想要的各种资源都能搜的到?】C语言简易学生成绩管理系统运维工作梳理韭菜的愤怒:谷歌删除近10万条对Robinhood的负面评论Tampermonkey(油猴)的获取方法【技巧】简单几招解决Mac磁盘空间不足的问题惹什么猫都别惹熊猫!「功夫熊猫」20年对人类拿下4血为什么保持代码整洁如此重要?玩转指针重难点(1) 如何用SSL减少网站不必要的漏洞