学校培训网站建设,wordpress 缩略图代码,建湖做网站的,小型手机网站建设多少钱☁️主页 Nowl
#x1f525;专栏《机器学习实战》 《机器学习》
#x1f4d1;君子坐而论道#xff0c;少年起而行之
文章目录
GBDT模型介绍
Boosting
残差
GBDT的缺点
python代码实现
代码
模型参数解释
结语 GBDT模型介绍 GBDT#xff08;Gradient Boos…
☁️主页 Nowl
专栏《机器学习实战》 《机器学习》
君子坐而论道少年起而行之
文章目录
GBDT模型介绍
Boosting
残差
GBDT的缺点
python代码实现
代码
模型参数解释
结语 GBDT模型介绍 GBDTGradient Boosting Decision Tree也叫做梯度提升决策树它的主要思想也是集成学习由名字可以看出GBDT的弱分类器是决策树 即训练多个子模型结合子模型来得到最终结果但他们也有一些区别 Boosting
Boosting是GBDT与传统集成学习的一个主要区别
传统的集成学习训练过程中分类器之间不会有任何联系模型各自独立训练最后结合得出结果
而Boosting训练过程中分类器会根据上一个分类器的结果来调整重点关注上一个分类器的误差点从而更好地提高模型性能
残差
我们接下来来看看分类器之间是怎么联系的残差代表分类器预测结果与真实值的差距
假设我们有一个预测数字的任务目标值是40则会有这样一个过程
第一个分类器预测结果为30则残差为10第二个分类器去拟合残差这时第二个分类器的目标值变成了10以此类推最后得到的残差为0完成任务
可以看到Boosting的思想是每一个分类器去拟合前一个分类器的残差最后每个分类器的结果加起来就是真实值
GBDT的缺点
由于每个分类器要等待上一个分类器的结果故模型无法并行训练消耗的时间可能较多 python代码实现
代码
这段代码使用的数据集是虚拟的我们这里主要学习模型是如何构建的在实际任务中将数据集替换为真实数据集即可 # 导入必要的库
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.metrics import accuracy_score# 创建虚构的数据集
X, y make_classification(n_samples1000, n_features20, random_state42)# 划分数据集
X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 初始化并训练GBDT模型
gbdt_model GradientBoostingClassifier(n_estimators100, learning_rate0.1, max_depth3, random_state42)
gbdt_model.fit(X_train, y_train)# 预测
y_pred gbdt_model.predict(X_test)# 评估模型性能
accuracy accuracy_score(y_test, y_pred)
print(fAccuracy: {accuracy}) 模型参数解释 n_estimators: 子分类器数量 learning_rate: 学习率 max_depth: 决策树最大深度
结语
GBDT是一种优化的集成学习方法采用了拟合残差的新思想广泛应用于分类任务和回归任务中它还有两个优化方法XGBoost和LightGBM之后会做具体介绍敬请期待 感谢阅读觉得有用的话就订阅下本专栏吧有错误也欢迎指出