基于梯度提升决策树的组合特征方法,《百面机器学习》学习笔记

基于梯度提升决策树的组合特征方法

梯度提升决策树

梯度提升决策树(Gradient Boosting Decision Trees)是一种集成学习方法,它通过逐步迭代地训练决策树模型来提高预测性能。该方法的原理可以分为两个主要部分:梯度提升和决策树。

梯度提升(Gradient Boosting)
梯度提升是一种迭代的优化过程,通过逐步优化模型的损失函数来提高模型的预测能力。它基于前一轮迭代的模型的预测结果和真实标签之间的残差(即差异),来训练下一轮迭代的模型。具体步骤如下:
a. 首先,使用一个初始的弱模型(如决策树)作为基础模型进行预测。
b. 计算基础模型的预测结果与真实标签之间的残差。
c. 使用这些残差作为目标值,训练下一个弱模型,以尝试减少这些残差。
d. 将当前模型的预测结果与新模型的预测结果相加,形成一个新的预测结果。
e. 重复步骤b-d,直到达到预先定义的迭代次数或损失函数收敛。

决策树(Decision Trees)
决策树是一种基本的机器学习模型,它通过一系列的决策规则对数据进行分类或回归。在梯度提升中,决策树被用作弱模型,也称为弱学习器。每一轮迭代中,都会训练一个新的决策树来捕捉之前模型预测的残差。决策树的生成过程如下:
a. 首先,选择一个特征和切分点,将数据集划分为两个子集。
b. 使用某种准则(如最小化基尼指数或最小化均方差)来确定最佳的特征和切分点。
c. 递归地重复步骤a-b,直到达到预定义的停止条件(如达到最大深度或节点中的样本数量小于某个阈值)。
d. 每个叶节点上的值为该叶节点中样本的平均值(对于回归问题)或多数类别(对于分类问题)。

梯度提升决策树通过反复迭代上述两个步骤,每一轮迭代都试图减少前一轮模型的残差,从而提高整体模型的预测性能。在每一轮迭代中,新的决策树被训练来捕捉前一轮模型预测的残差,然后将其加入到模型中,形成一个更强大的集成模型。

最终的模型是所有迭代过程中生成的决策树的加权和,其中每棵树的权重取决于其在迭代过程中的性能表现。在预测阶段,新样本通过依次经过所有决策树,并将它们的预测结果相加,得到最终的预测值。

这里举一个例子来说明梯度提升决策树的思想方法

假设任务为使用现有的训练数据集来拟合一个模型,使其具有根据房屋面积来预测房屋价格的能力。

给出训练数据如下:

房屋面积价格(标签)
1000550000
1500650000
2000720000
2500820000
3000900000

在初始阶段,首先选定一个基本的弱模型,这里选择决策树模型作为基础模型。然后使用上述5组数据的价格平均数作为初始的模型预测值,那么初始的预测值如下表所示:

房屋面积(特征)价格(标签)初始预测价格
1000550000704000
1500650000704000
2000720000704000
2500820000704000
3000900000704000

然后,使用当前模型的预测结果与真实标签之间的残差,即实际价格和预测价格之间的差值。然后,这些残差将成为下一轮模型迭代的目标值。

房屋面积(特征)价格(标签)初始预测价格残差
1000550000704000-154000
1500650000704000-54000
200072000070400016000
2500820000704000116000
3000900000704000196000

接着,使用上述表格中的残差作为目标值,训练一个新的决策树来捕捉这些残差的模式。新的决策树将尝试减少上一轮模型的残差。

当新的决策树训练完成之后,可以将其预测结果与之前的预测结果相加,得到一个新的预测结果如下表所示。

房屋面积(特征)价格(标签)初始预测价格残差新预测价格
1000550000704000-154000550000
1500650000704000-54000596000
200072000070400016000720000
2500820000704000116000820000
3000900000704000196000900000

然后,继续计算新预测价格与真实标签之间的残差,再次作为目标值。

房屋面积(特征)价格(标签)初始预测价格残差新预测价格新残差
1000550000704000-1540005500000
1500650000704000-5400059600054000
2000720000704000160007200000
25008200007040001160008200000
30009000007040001960009000000

然后进行下一轮的迭代,训练另外一个决策树来捕捉新残差的模式,并将其预测结果与之前的预测结果相加。

不断重复上述过程,每一轮迭代都试图减少前一轮模型的残差,直到达到预先定义的迭代次数或损失函数收敛。

最终得到的模型为所有迭代中生成的决策树模型的加权和,其中每棵树的权重取决于其在迭代过程中的性能表现。

为了更好地说明如何使用梯度提升决策树来实现对特征的组合,再举一个例子

假设任务为使用模型来预测一个人的年龄,训练集有A B C D四个人,他们的年龄分别为14、16、24、26,其每个人的特征包含:月购物金额、上网时长、上网历史等。那么,从头开始训练一个决策树如下:
在这里插入图片描述
首先,使用购物金额来得到第一棵树,求得每个样本预测值与真实值之间的残差;

然后,使用得到的残差作为目标值,来训练另外一棵树使得残差尽可能的收敛到某个阈值以下,或者树的总数达到某个上限为止。

由于在上述构建GBDT的过程是利用残差训练的,在预测过程中,需要将所有数的预测值加起来,得到最终的预测结果。

假设对于某种类型的输入,经过上述介绍的梯度提升决策树构建流程得到的模型如下图所示

在这里插入图片描述
上图引自《百面机器学习》,图中为典型决策树。其中,共有四种特征组合方式:
(1)用户类型=付费用户+年龄 ≤ \leq 40;
(2)用户类型=付费用户+物品类型=食品;
(3)年龄 ≤ \leq 35+物品类型=护肤;
(4)年龄 ≤ \leq 35+性别=女;

现在给出两个样本,分别如下:

是否点击年龄性别用户类型物品类型
28免费护肤
36付费食品

那么按照上述四种特征组合方式来说,上表中第一个样本可以编码为(0,0,1,1),因为该样本只满足(3)(4)组合特征,但并不满足(1)(2)组合特征;同理,对于上表中的第二个样本可以编码为(1,1,0,0),因为该样本同时满足(1)(2)组合特征,但不满足(3)(4)组合特征。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wyypersist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值