mysql可以做决策树吗_决策树是怎么做回归的?

最近一直在用各种树模型做回归的课题,但其实对于决策树实现回归的原理并不清楚。

这篇文章是对决策树实现回归的总结,

实验数据:

X 1 2 3 4 5 6 7 8 9 10

Y 5.56 5.7 5.91 6.4 6.8 7.05 8.9 8.7 9 9.05

和分类问题相同,首先需要确定可能的分割点,很明显这里有9个可能的分割点。

{1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5}

确定好分割点之后,需要计算每个分割点损失。

使用公式如下:

使用方法如下:

第一步:

当选择分割点 s = 1.5 时,则数据被分为两个子区域:

R1= {1} R2 = {2,3,4,5,6,7,8,9,10}

可以得到

c1 = 5.56

c2 = (5.7+5.91+6.4+6.8+7.05+8.9+9+9.05)/9 = 7.5

L(1.5) = (5.56-5.56)^2 + [ (5.7-7.5)^2 + (5.91-7.5)^2 + ... + (9.05-7.5)^2 ]

= 0 + 15.72 = 15.72

同理我们可以得到如下表格:

s 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5

c1 5.56 5.63 5.72 5.89 6.07 6.24 6.62 6.88 7.11

c2 7.5 7.73 7.99 8.25 8.54 8.91 8.92 9.03 9.05

L(s) 15.72 12.07 8.36 5.78 3.91 1.93 8.01 11.73 15.74

s=6.5时,损失函数值最小 → 第一个划分点为( j=x, s=6.5 ).

第二步:

使用第一个划分点 ( j=x, s=6.5 ),划分区域,并决定各区域输出。

划分区域为:R1= {1,2,3,4,5,6} R2 = {7,8,9,10}

对应输出为:c1 = 6.24 c2 = 8.91

第三步:

对上一步分割好区域继续进行划分:

对R1= {1, 2, 3, 4, 5, 6} , 取分割点{1.5, 2.5, 3.5, 4.5, 5.5}

计算损失值得到下表:

s 1.5 2.5 3.5 4.5 5.5

c1 5.56 5.63 5.72 5.89 6.07

c2 6.37 6.54 6.75 6.93 7.05

L(s) 1.31 0.75 0.28 0.44 1.06

s=3.5时,损失函数值最小 → 第二个划分点为( j=x, s=3.5 ).

后面同理

第四步:

假设两次划分后即停止,则最终生成的回归树为:

PS:各种库里的树模型都是用max_depth来代表分割次数的。

如果max_depth = 1, 就有 2^0 个分割点

如果max_depth = 2, 就有 2^0 +2^1 个分割点

如果max_depth = 3, 就有 2^0 + 2^1 + 2^2 个分割点

以此类推。

所以像本文中所写的只有2个分割点的情况其实是不存在的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值