目录
Leaf-wise (Best-first) 的决策树生长策略
很好的GBDT+XGBoost+LightGBM参考资料:http://free.tianle.me/image/20180109/wepon_gbdt.pdf
各种模型+正则的名称
https://homes.cs.washington.edu/~tqchen/pdf/BoostedTree.pdf
随机森林 vs GBDT
Q:随机森林和GBDT有什么异同?
A: 两者的相同点包括
- 两者都是基于决策树
- 两者都能够处理缺失值
- 两者都能给出特征重要性
- 两者都是bootstrap的思想
两者的不同点包括
- 随机森林采用bagging的思想,有放回地均匀抽取训练样本;GBDT采用boosting的思想,根据错误率来采样
- GBDT的精度优于随机森林
- 随机森林可以由分类树或者回归树组成;GBDT由回归树组成
- 随机森林可以使用并行计算;GBDT使用串行计算
- 随机森林对所有结果取多数投票或平均;GBDT将每棵树的输出相加
- 随机森林对异常值不敏感;GBDT对异常值非常敏感
- 随机森林方差小;GBDT偏差小
- 随机森林不需要限制树的深度;GBDT需要限制树的深度
XGBOOST vs GBDT
Q: xgboost是什么?xgboost和传统GBDT有什么不同?
A: xgboost专门用来训练梯度提升树的模型。xgboost在传统GBDT的基础上进行了一系列改进。xgboost和传统GBDT的区别包括一下:
- 传统的GBDT以CART回归树作为基学习器(base learner),xgboost还支持线性分类器
- 传统的GBDT在优化时只用到了一阶梯度,xgboost用到了二阶梯度
- xgboost在损失函数中加入了正则项,即加入叶子个数和叶子输出作为惩罚项
- xgboost加入了缩减(shrinkage),即每次更新fm之前,把叶子结点的输出乘以一个系数η
- xgboost支持列抽样:类似随机森林,每次分裂一个树结点时只考虑一部分特征
- xgboost在每棵树的每个结点需要选择最优特征时,使用多线程并行地计算各个特征的损失,从而减少了运算时间(为什么能并行计算:因为事先对每个特征进行了预排序)
预排序:
LightGBM vs GBDT
https://zhuanlan.zhihu.com/p/25308051
https://blog.csdn.net/maqunfi/article/details/82219999
1.LightGBM是微软2017年新提出的,比Xgboost更强大、速度更快的模型,性能上有很大的提升,与传统算法相比具有的优点: *更快的训练效率
*低内存使用
*更高的准确率
*支持并行化学习
*可处理大规模数据
*原生支持类别特征,不需要对类别特征再进行0-1编码这类的
2.LightGBM一大的特点是在传统的GBDT基础上引入了两个 新技术和一个改进:
(1)Gradient-based One-Side Sampling(GOSS)技术是去掉了很大一部分梯度很小的数据,只使用剩下的去估计信息增益,避免低梯度长尾部分的影响。由于梯度大的数据在计算信息增益的时候更重要,所以GOSS在小很多的数据上仍然可以取得相当