关于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。

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信