GBDT算法

GBDT(Gradient Boosting Decision Tree)是一种以梯度下降为目标优化决策树的集成学习算法。它通过构建一系列弱决策树并结合它们的预测结果来减少损失函数。在回归任务中,GBDT以残差作为训练数据,而在分类任务中,每棵树代表一类,通过计算概率残差来确定分类。训练时寻找最佳划分点以最小化方差,迭代直到残差足够小。预测时,将所有树的贡献加起来得到最终结果。

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

GBDT算法 Gradient Boosting Decision Tree

以梯度为优化目标,以提升为手段(前面讲到的集成算法中的串联),基础模型为决策树(这里用的是回归树)的算法

GBDT简单来说,就是用多个树串联,提升模型的效果

 

以下是学习唐宇迪老师的GBDT算法的理解,文末有其他直接更详细的的关于GBDT算法的实现

回归树的形式是CART 即二叉树

使用回归树做分类和回归都可以

我们希望分类的话是残差尽量小,使损失函数小,而回归,数据离均值近

衡量回归树分类效果我们用的是利用变换到exp函数上属于哪一类的概率从而得到损失函数的值

衡量回归树回归效果我们用的是最小二乘法,实际值和均值之差的平方累和

 

GBDT核心为GB算法,它的优化目标是使损失函数最小

f(x)即为我们建立的模型,L函数是损失函数,意思是什么样的模型能够使得到损失函数最小(数据得到合理分配)

那么对于GBDT算法来说,就是找到合理的参数(模型的参数和各模型的合理的分配比例,因为这里用到的是多棵树)

### GBDT算法原理 GBDT,全称为Gradient Boosting Decision Tree(梯度提升决策树),是一种高效的集成学习方法。该方法通过迭代地添加决策树来逐步减少预测误差,在多种任务中展现出色性能,特别是在处理结构化数据的分类和回归问题上[^1]。 #### 基础理论 GBDT的核心在于梯度提升算法,这是一种能够将多个弱学习器(通常为决策树)组合成一个强学习器的技术。具体来说,每一轮训练都会基于前一轮模型产生的残差构建新的决策树,以此不断改进整体模型的表现。这种机制使得GBDT能够在保持高精度的同时具备良好的泛化能力[^2]。 对于二元分类问题,GBDT采用CART回归树作为基学习器,并利用对数似然损失函数指导模型的学习过程。当目标变量取值为1或-1时,对应的负梯度计算方式会直接影响到后续回归树的拟合方向与程度[^3]。 ```python from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split from sklearn.ensemble import GradientBoostingClassifier import numpy as np # 创建模拟数据集 X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, random_state=42) # 划分训练集测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) # 初始化并训练GBDT分类器 gbdt_clf = GradientBoostingClassifier() gbdt_clf.fit(X_train, y_train) # 预测新样本类别 predictions = gbdt_clf.predict(X_test) print(f'Predicted classes: {np.unique(predictions)}') ``` 此代码片段展示了如何使用Python中的`sklearn`库快速搭建一个简单的GBDT分类模型,并完成基本的数据预处理、模型训练及预测操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值