XGBoost和GBDT的优缺点及XGBoost可并行的原因。

XGBoost作为一种先进的机器学习算法,拥有防止过拟合、求导精度高、灵活性强等八大优势。它通过引入正则项控制模型复杂度,使用二阶泰勒展开提升优化效果,支持自定义优化目标和评估标准,改进节点分裂方式,引入列抽样和缺失值处理机制,内置交叉验证,支持并行处理和近似直方图算法,有效提高模型性能。

xgboost优点主要有:

1)防止过拟合
传统的GBDT是以CART作为基分类器,xgboost除了以cart还支持线性分类器,这个时候XGBOOST相当于带L1和L2正则化的逻辑斯蒂回归(分类问题)或者线性回归(回归问题),并且还支持hadoop分布式计算。xgboost在代价函数里加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、每个叶子节点上输出的score是L2模的平方和。使学习出来的模型更加简单,防止过拟合,这也是xgboost优于传统GBDT的一个特性。
2)求导
传统的GBDT在优化的hih只用到一阶导数信息,xgboost则对代价函数进行了二阶泰勒展开,同时用到了一阶和二阶导数,而不是像GBDT里的就是一阶导数;
3)高度的灵活性
XGBoost允许用户定义自定义优化目标和评价标准,xgboost工具支持自定义代价函数,只要函数可一阶和二阶求导。
4)节点分裂的方式不同
GBDT是用的基尼系数,XGBoost是经过优化推导后的。Shrinkage(缩减),相当于学习速率。xgboost在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了消弱每棵树的影响,让后面有更大的学习空间。在实际应用中,一般把学习率设置的小一点,然后迭代次数设置的大一点(补充:传统GBDT的实现也有学习速率)
5)列抽样。
xgboost借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。
6)缺失值处理
XGBoost内置处理缺失值的规则。用户需要提供一个和其它样本不同的值,然后把它作为一个参数传进去,以此来作为缺失值的取值。XGBoost在不同节点遇到缺失值时采用不同的处理方法,并且会学习未来遇到缺失值时的处理方法。对于特征的值有缺失的样本,xgboost可以自动学习出她的分裂方向。
7)内置交叉验证
XGBoost允许在每一轮b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值