一个例子让你明白什么是CART回归树

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

臂长(m) 年龄(岁) 体重(kg) 身高(m)(标签值)
0.5 5 20 1.1
0.7 7 30 1.3
0.9 21 70 1.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.5 c2=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.08 m(0.5)=(1.11.1)2+(1.51.3)2+(1.51.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。

你可能感兴趣的:(机器学习)