xgboost

摘录自知乎。https://www.zhihu.com/question/41354392

xgboost和gbdt的区别,为什么快?如何支持并行?
1.传统gbdt是用CART作为基分类器,xgboost还支持线性分类器。此时xgboost相当于带l1和l2正则化项的逻辑回归(分类问题)或者线性回归(回归问题)。
2.gbdt优化时只用到了一阶求导,xgboost对代价函数进行二阶泰勒展开,同时用到了一阶导数和二阶导数。xgboost可以自定义代价函数,只要函数可以一阶二阶求导。
3.xgboost在代价函数中加入了正则项用于控制模型复杂度。正则项包含树的叶子节点个数、每个叶子节点上输出的score的L2模的平方和。正则项用于降低模型variance,让模型更简单,防止过拟合。
4.缩减shrikage。xgboost在一次迭代完成后,会将叶子节点的权重乘上这个系数,为了削弱每个树的影响,让后面有更大学习空间。
5.列抽样。xgboost借鉴了随机森林的做法,支持列抽样,可以降低过拟合,减少计算。
6.对缺失值的处理。对于有特征缺失值的样本,xgboost可以自动学习分裂方向。
7.xgboost支持并行。xgboost的并行不是树粒度的,而是特征粒度上的。xgboost在训练之前,预先对数据进行排序,保存为block结构,迭代过程反复利用这个结构。在进行节点分裂时,需要计算每个特征的增益,选择增益大的特征做分裂,那么各个特征的增益计算可以并行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值