梯度提升树(GBDT)原理

本文总结了Boosting算法家族中的梯度提升树(GBDT)原理。作为Adaboost算法的重要补充,GBDT在机器学习任务中表现出优秀的性能。文章详细介绍了GBDT的工作机制及其应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

### 梯度提升树(GBDT)原理 梯度提升树是一种集成学习方法,其核心在于构建一系列弱分类器(通常是决策树),并通过迭代方式逐步减少损失函数来增强整体模型性能。具体来说,在每次迭代过程中,新加入的一棵树会专注于修正前一轮预测中的错误。 #### 数学公式推导 对于一个由 \( M \) 颗树组成的提升树模型,可以表示为: \[ f_M(x) = \sum_{m=1}^{M} T(x; \varTheta_m)\tag{11-1}\label{eq:boosting-tree-model}[^3] 其中: - \(f_M(x)\) 表示最终的预测结果; - \(T(x;\varTheta_m)\) 是第\( m \)棵回归树对应的叶节点权重向量\(\varTheta_m\)所决定的输出值; 为了最小化总体误差,采用加法模型的形式逐次逼近最优解。即在每一步都寻找能够最大程度降低当前残差平方和的新基函数(这里是单棵CART回归树)。设初始估计值为常数项c0,则有: \[ F_0(x)=argmin_c{\frac {1}{N}}\sum _{{i=1}}^{N}(y_i-c)^2=c_0=\bar y,\quad where\ N=len(y),\ and\ \bar y={\frac {\sum _{{i=1}}^{N}y_i}{N}}.\nonumber \] 接着依次更新后续各步的近似值Fi(x),使得目标函数L达到极小化状态: \[F_k(x)=F_{k−1}(x)+h_k(x).\nonumber \] 这里hk(x)代表新增加的那一部分贡献——也就是我们所说的“伪残留”。它实际上就是利用前面提到的方法拟合出来的关于真实标签yi与现有预测之间差距的信息。当涉及到具体的优化过程时,则需考虑不同的损失函数形式以及相应的梯度下降策略来进行求解。 ```python from sklearn.ensemble import GradientBoostingClassifier import numpy as np # 构造简单的二元分类数据集用于演示目的 X_train = np.array([[1], [2], [3]]) y_train = np.array([0, 1, 0]) clf = GradientBoostingClassifier(n_estimators=3, learning_rate=1.0, max_depth=1, random_state=0) model = clf.fit(X_train, y_train) print(model.predict_proba(np.array([[1]]))) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值