ThunderGBM:快成一道闪电的梯度提升决策树

想在 GPU 上使用使用闪电般快速的提升方法?了解这个库就好了。在很多任务上,它都比 LightGBM 和 XGBoost 快。

尽管近年来神经网络复兴并大为流行,但提升算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。目前代表性的提升方法有 CatBoost、Light GBM 和 XGBoost 等,本文介绍一项新的开源工作,它构建了另一种基于 GPU 的极速梯度提升决策树和随机森林算法。

项目地址:github.com/Xtra-Comput…

那么我们为什么加速 GBDT 和随机森林?2017 年,一份 Kaggle 调查显示,数据挖掘和机器学习从业者中分别有 50%、46% 和 24% 的人使用决策树、随机森林和 GBM。GBDT 和随机森林经常被用来创建当前最佳的数据科学解决方案,这就要求我们能使用 GPU 在大型数据集上完成高效训练。

两棵决策树的集成方法,选自 XGBoost 文档。

尽管 XGBoost 等库已经支持 GPU 了,但毕竟不是一开始就为 GPU 而设计的,因此在优化和加速上会有一些瑕疵。而 ThunderGBM 旨在帮助用户轻松高效地应用 GBDT 和随机森林来解决问题,它可以利用 GPU 完成高效训练。

对于 GPU 而言,ThunderGBM 在很多任务上都比其它几个库要快。

ThunderGBM 的主要特征如下:

  • 通常是其它库的 10 倍。

  • 支持 Python(scikit-learn)接口。

  • 支持操作系统 Linux。

  • 支持分类、回归和排序。

ThunderGBM 预测和训练的整体流程。

ThunderGBM 主要作者包括新加坡国立大学的 Zeyi Wen 和 Qinbin Li、华南理工大学的 Jiashuai Shi 等,指导教师为 NUS 的 Bingsheng He。

入门指南

ThunderGBM 要求开发环境满足 cmake 2.8 或更高版本;对于 Linux,使用 gcc 4.8 或更高版本;C++boost; CUDA 8 或更高版本。

下载:

git clone https://github.com/zeyiwen/thundergbm.gitcd thundergbm# under the directory of thundergbmgit submodule init cub && git submodule update复制代码

在 Linux 上构建:

#under the directory of thundergbmmkdir build && cd build && cmake .. && make -j复制代码

快速测试:

./bin/thundergbm-train ../dataset/machine.conf./bin/thundergbm-predict ../dataset/machine.conf复制代码

成功运行后,你将看到 RMSE = 0.489562。

相关研究

如果读者对实现的技术及模型细节感兴趣,可以查阅原论文:

论文地址:www.comp.nus.edu.sg/~wenzy/pape…

其它相关文献:

  • 论文:Efficient Gradient Boosted Decision Tree Training on GPUs

  • 作者:Zeyi Wen, Bingsheng He, Kotagiri Ramamohanarao, Shengliang Lu, and Jiashuai Shi

  • 地址:https://www.comp.nus.edu.sg/~hebs/pub/IPDPS18-GPUGBDT.pdf


gbm(Gradient Boosting Machine)是一种梯度提升决策树算法,它是一种集成学习方法,通过迭代地训练多个弱学习器(通常是决策树),然后将它们组合成一个强学习器。gbm在解决分类和回归问题上都有很好的表现。 gbm的主要特点包括: 1. 梯度提升:gbm通过梯度下降的方式迭代地训练模型,每一次迭代都会根据前一次迭代的结果来调整模型的参数,使得模型在训练数据上的预测误差逐步减小。 2. 决策树:gbm使用决策树作为基础学习器,每一棵决策树都是在前一棵决策树的残差基础上进行训练,以进一步减小模型的预测误差。 3. 集成学习:gbm将多个弱学习器组合成一个强学习器,通过加权平均或投票等方式进行预测。 gbm的优点包括: 1. 高准确性:gbm能够通过迭代训练多个弱学习器来提高模型的准确性,尤其在处理复杂的非线性问题时表现优秀。 2. 灵活性:gbm可以处理各种类型的数据,包括数值型和类别型特征,还可以处理缺失值。 3. 鲁棒性:gbm对异常值和噪声数据具有一定的鲁棒性,能够有效地处理数据中的噪声。 然而,gbm也有一些限制: 1. 训练时间较长:由于gbm是通过迭代训练多个弱学习器,因此训练时间相对较长。 2. 容易过拟合:如果不合理地设置模型参数,gbm容易过拟合训练数据,导致在测试数据上的表现不佳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值