树模型(二):分类回归树

CART算法采用的是一种二分递归分割的技术,将当前样本分成两个子样本集,使得生成的非叶子节点都有两个分支。因此CART实际上是一颗二叉树。当CART是分类树的时候,采用GINI值作为分裂节点的依据,当CART作为回归树的时候,使用样本的最小方差作为分裂节点的依据

1 回归树

1.1 算法原理

输入:训练数据集D
输出:回归树 f ( x ) f(x) f(x)
在训练数据集所在的输入空间中,递归得将每一个区域划分为两个子区域并决定每个子区域上的输出值,构建二叉决策树:
(1)选择最优切分变量j和切分点s,求解

m i n j , s [ m i n c 1 ∑ x i ϵ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n c 2 ∑ x i ϵ R 2 ( j , s ) ( y i − c 2 ) 2 ] min_{j,s}[min_{c_{1}} \sum_{x_{i}\epsilon R_{1(j,s)} }^{} (y_{i}-c_{1})^{2} + min_{c_{2}} \sum_{x_{i}\epsilon R_{2(j,s)} }^{} (y_{i}-c_{2})^{2}] minj,s[minc1xiϵR1(j,s)(yic1)2+minc2xiϵR2(j,s)(yic2)2]

遍历变量j,对固定的切分变量j扫描切分点s,选择使上式达到误差最小的变量(j,s),其中 R 1 R_{1} R1 R 2 R_{2} R2表示的是划分之后的空间。
(2)用选定的(j,s)划分区域并决定响应的输出值

R 1 ( j , s ) = { x ∣ x ( j ) ≤ s } , R 2 ( j , s ) = { x ∣ x ( j ) > s } R_{1}(j,s) = \left \{x|x^{(j)}\leq s\right \} , R_{2}(j,s) = \left \{x|x^{(j)} > s\right \} R1(j,s)={xx(j)s},R2(j,s)={xx(j)>s}

c m ^ = 1 N m ∑ x i ϵ R m ( j , s ) y i , x ϵ R m , m = 1 , 2 \hat{c_{m}} = \frac{1}{N_{m}}\sum_{x_{i} \epsilon R_{m(j,s)}}y_{i}, \quad x \epsilon R_{m}, \quad m=1,2 cm^=Nm1xiϵRm(j,s)yi,xϵRm,m=1,2

(3)继续对两个子区域调用步骤(1),(2),直到满足停止条件
(4)将输入空间划分为M个区域 R 1 R_{1} R1, R 2 R_{2} R2, R 3 R_{3} R3 R m R_{m} Rm,生成决策树:

f ( x ) = ∑ m = 1 M c m ^ I ( x ϵ R m ) f(x) = \sum_{m=1}^{M}\hat{c_{m}}I(x \epsilon R_{m}) f(x)=m=1Mcm^I(xϵRm)

1.2 示例

下面我们将利用以下数据对年龄进行预测

在这里插入图片描述

首先将j的属性选为职业,则有三种划分情况{“老师”,“学生”}、{“上班族”}以及{“老师”,“上班族”}、{“学生”},最后一种为{“学生”,“上班族”}、{“老师”}

(1)第一种情况 R 1 R_{1} R1={“学生”}, R 2 R_{2} R2={“老师”,”上班族”}
在这里插入图片描述

此时有

c 1 = ( 12 + 18 + 21 ) / 3 = 17 c_{1}=(12+18+21)/3=17 c1=(12+18+21)/3=17

c 2 = ( 26 + 47 + 36 + 29 ) / 4 = 34.5 c_{2}=(26+47+36+29)/4=34.5 c2=(26+47+36+29)/4=34.5

m = [ m i n ∑ x i ϵ R 1 ( y i − c 1 ) 2 + m i n ∑ x i ϵ R 2 ( y i − c 2 ) 2 ] m =[min \sum_{x_{i}\epsilon R_{1} }^{} (y_{i}-c_{1})^{2} + min \sum_{x_{i}\epsilon R_{2} }^{} (y_{i}-c_{2})^{2}] m=[minxiϵR1(yic1)2+minxiϵR2(yic2)2]

y i ∈ ( 年 龄 ) = ( { 12 , 18 , 21 } , { 26 , 47 , 36 , 29 } ) y_{i} ∈ (年龄)=( \left \{12,18,21\right \},\left \{26,47,36,29\right \}) yi()=({12,18,21},{26,47,36,29})

最小平方误差计算得:

m = 42 + 261 = 303 m=42+261=303 m=42+261=303

2 分类树

2.1 算法原理

输入:训练数据集D,停止计算的条件
输出:CART决策树
具体步骤:
(1)计算现有特征对该数据集的基尼指数,对于每一个特征A,可以对样本点A是否为a可以将数据集D分成数据集 D 1 D_{1} D1, D 2 D_{2} D2
(2)对于所有的特征A和所有可能的切分点a,选择基尼指数最小的特征以及相对应的切分点作为最优特征和最佳切分点。
(3)对最优子树递归调用(1)(2),直到满足停止条件。
(4)生成CART分类树。

2.2 示例

在下图中,属性有3个,分别是有房情况,婚姻状况和年收入,其中有房情况和婚姻状况是离散的取值,而年收入是连续的取值。拖欠贷款者属于分类的结果。

假设现在来看有房情况这个属性,那么按照它划分后的Gini指数计算如下
在这里插入图片描述
而对于婚姻状况属性来说,它的取值有3种,按照每种属性值分裂后Gini指标计算如下

在这里插入图片描述

最后还有一个取值连续的属性,年收入,它的取值是连续的,那么连续的取值采用分裂点进行分裂。如下
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值