pallas 发表于 2022-4-21 15:44:22

python+GBDT预测年龄

预测年龄
我们不妨假设同事的年龄分别为5岁、6岁、7岁,那么同事的平均年龄就是6岁。所以我们用6岁这个常量来预测同事的年龄,即。每个同事年龄的残差 = 年龄 - 预测值 = - ,所以残差为[-1, 0, 1]

预测年龄的残差
为了让模型更加准确,其中一个思路是让残差变小。如何减少残差呢?我们不妨对残差建立一颗回归树,然后预测出准确的残差。假设这棵树预测的残差是[-0.9, 0, 0.9],将上一轮的预测值和这一轮的预测值求和,每个同事的年龄 = + [-0.9, 0, 0.9] = ,显然与真实值更加接近了, 年龄的残差此时变为[-0.1, 0, 0.1],预测的准确性得到了提升。

GBDT
重新整理一下思路,假设我们的预测一共迭代3轮 年龄:
第1轮预测:
第2轮预测: + [-0.9, 0, 0.9 ]=
第2轮残差: - = [-0.1, 0, 0.1]
第3轮预测: + [-0.9, 0, 0.9] + [-0.08, 0, 0.07 ]=
第3轮残差: - = [-0.08, 0, 0.03]
看上去残差越来越小,而这种预测方式就是GBDT算法。

提问:[-0.08, 0, 0.07 ]这里是怎么推导得到的

傻眼貓咪 发表于 2022-4-21 15:44:23

兄弟,题目说迭代 3 轮,你注意看第 2 轮的 [-0.9, 0, 0.9] 是怎样获得的?

答案在上面有说明:假设这棵树预测的残差是[-0.9, 0, 0.9]

pallas 发表于 2022-4-22 18:26:13

傻眼貓咪 发表于 2022-4-21 16:17
兄弟,题目说迭代 3 轮,你注意看第 2 轮的 [-0.9, 0, 0.9] 是怎样获得的?

答案在上面有说明:假设这棵 ...

但[-0.08, 0, 0.07 ]是咋得出来的啊,想不通{:10_282:}

傻眼貓咪 发表于 2022-4-22 21:38:11

pallas 发表于 2022-4-22 18:26
但[-0.08, 0, 0.07 ]是咋得出来的啊,想不通

应该也是假设吧
页: [1]
查看完整版本: python+GBDT预测年龄