AdaBoosting and Stacking

本文介绍了AdaBoosting和Stacking两种集成学习方法。AdaBoosting通过不断调整数据点权重,重点处理前一轮错误分类的样本,常用于回归问题,但计算复杂度高。XGBoost作为AdaBoosting的优化版,引入并行化、正则化等改进,降低了过拟合风险。Stacking则是通过神经网络等模型,将多个基学习器的预测结果作为输入,进行二次学习,提高模型性能。

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

集成学习-boosting在这里插入图片描述

第一次没被拟合的点,增强学习
基于同一组数据
但是每个子模型认为的每个点的权重不同在这里插入图片描述

在这里插入图片描述
key:gbdt 用于回归效果比较好
value:每一颗树学习的是之前树的残差相当于变相增大分错部分的权重。

缺点:不利于并行化;计算复杂度高,不适合高维稀疏特征

改进:XGboost
并行多线程;剪纸;控制了复杂度(加入正则项-树叶节点数+score的L2范数)

Shrinkage(缩减),相当于学习速率(xgboost中的eta)。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。实际应用中,一般把eta设置得小一点,然后迭代次数设置得大一点。(传统GBDT的实现也有学习速率)

列抽样(column subsampling)。xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算,这也是xgboost异于传统gbdt的一个特性。

对缺失值的处理。对于特征的值有缺失的样本,xgboost可以自动学习出它的分裂方向。

xgboost工具支持并行。注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。
我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。(特征粒度上的并行,block结构,预排序)

XGboost的应用:
https://blog.youkuaiyun.com/sinat_35512245/article/details/79668363
model = xgb.XGBRegressor(max_depth=5, learning_rate=0.1, n_estimators=160, silent=False, objective='reg:gamma') model.fit(X_train, y_train)

[机器学习 ]RandomForest、GBDT、XGBoost、lightGBM 原理与区别

https://blog.youkuaiyun.com/zwqjoy/article/details/82150528

集成学习-stacking

key:stacking
value:神经网络,神经元为模型
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值