超级女王XGBoost到底“绝”在哪里?( 九 )

XGBoost 如何优化GBM 标准算法

系统优化:

1. 并行化:XGBoost通过多线程实现了回归树的并行构建 。 由于用于构建基础学习者的循环具有可互换性 , 因此设计并行是可能的 。 外部循环枚举树的节点 , 内部循环则计算特征 。 这种循环嵌套在一定程度上限制了并行化 , 当没有完成内部循环 , 外部循环就无法启动 。

因此 , 为改善运行时间 , 可通过对所有实例的全局扫描实现初始化 , 使用并行线程分类来交换循环顺序 。 这一交换通过抵消计算中的并行化开销 , 提高算法性能 。

2. 决策树剪枝:当剪枝分裂遇到一个负损失时 , GBM会停止分裂 。 因此GBM实际上是一个贪心算法(只求达到局部最优解就ok) 。 但XGBoost会一直分裂到指定的最大深度(max_depth) , 然后回过头来剪枝 。 这种“深度优先”方法显著提高了计算性能 。

3.硬件优化:该算法旨在有效利用硬件资源 。 通过在每个线程中分配内部缓冲区 , 存储梯度统计信息 , 获取缓存感知 。 诸如“核外”计算等进一步增强功能可优化可用磁盘空间 , 同时处理不适合保存的大数据帧 。

推荐阅读