集成学习——梯度提升树(GBDT)

本文介绍了梯度提升树(GBDT)的基本原理,作为集成学习的成员,GBDT通过加法模型和残差减小策略迭代构建弱分类器。在sklearn中,GBDT分为分类和回归两种实现,主要参数包括n_estimators、learning_rate、subsample等,这些参数对模型的拟合和防止过拟合起关键作用。文中还提及了不同损失函数的选择及其影响。
摘要由CSDN通过智能技术生成

集成学习——梯度提升树(GBDT)

1 模型算法介绍

GBDT 也是集成学习 Boosting 家族的成员,通过采用加法模型,不断减小训练过程中产生的残差算法。即通过多轮迭代,每轮迭代生成一个弱分类器,并在上一轮分类器残差的基础上进行训练,但是弱学习器限定了只能使用 CART 回归树模型,且迭代思路与 Adaboost(利用前一轮迭代弱学习器的误差率来更新训练集的权重)有所不同。
GBDT 采用的是加法模型,这就要保证每一个弱学习器的输出结果进行加减是有意义的。但不能把 GBDT 看成很多棵分类树,因为分类树的输出结果是不同的类别,进行加减无意义,弱学习器只有采用回归树才有意义。GBDT 的核心就在于,每一个弱学习器学习的是上一轮迭代结论和的残差,即残差与预测值之和等于真实值,例如 A 的真实年龄是 18 岁,第一棵树的预测年龄是 12 岁,差了 6 岁,即残差为 6 岁;那么在第二棵树里我们把 A 的年龄设为 6 岁去学习,如果第二棵树真的能把 A 分到 6 岁的叶子节点,那累加两棵树的结论就是 A 的真实年龄;如果第二棵树的结论是 5 岁,则 A 仍然存在 1 岁的残差,第三棵树里 A 的年龄就变成1岁,如果迭代轮数还没有完,可以继续迭代,每一轮迭代拟合的岁数误差都会减小。
模型如下:

F m ( x ) = ∑ m = 1 M T ( x ; θ m ) F_m(x)=\sum_{m=1}^MT(x;\theta_m) Fm(x)=m=1MT(x;θm)

M M M 表示模型训练的轮数,每轮产生一个弱学习器 T ( x ; θ m ) T(x;\theta_m) T(x;θm) θ m \theta_m θm 表示迭代之后的残差,则残差的求解可以表示成如下形式:

θ ^ m = a r g min ⁡ ⎵ θ m ∑ i = 1 N L ( y i , F m

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gradient Boosting Decision Tree(梯度提升决策GBDT)是一种常用的集成学习算法,在回归问题中常用于预测连续型变量。在这里,我们可以使用GBDT算法来预测Boston房价。 具体实现步骤如下: 1. 准备数据集:我们可以使用sklearn库中的Boston数据集。 2. 划分训练集和测试集:按照一定比例将数据集划分为训练集和测试集。 3. 初始化GBDT算法:初始化决策模型、损失函数、的数量等参数。 4. 迭代训练:对于每一轮迭代,训练一个新的决策,并根据残差更新样本标签。 5. 集成所有决策:将所有决策的结果进行集成,得到最终的预测结果。 6. 评估模型:使用测试集对模型进行评估,计算均方误差(MSE)等指标。 下面是Python代码实现,使用sklearn库中的GradientBoostingRegressor类来实现GBDT算法: ```python from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingRegressor from sklearn.metrics import mean_squared_error # 加载数据集 boston = load_boston() X = boston.data y = boston.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3) # 初始化GBDT算法 clf = GradientBoostingRegressor(n_estimators=100, learning_rate=0.1, max_depth=3) # 迭代训练 clf.fit(X_train, y_train) # 集成所有决策 y_pred = clf.predict(X_test) # 评估模型 mse = mean_squared_error(y_test, y_pred) print('MSE:', mse) ``` 在这个例子中,我们使用100棵决策,每棵的学习率为0.1,最大深度为3。最终得到的MSE为14.18。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值