想在 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

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

  1. 【性能优化】如何让APK瘦成一道闪电

    转载请标注来源:http://www.cnblogs.com/charles04/p/8547273.html 如何让APK瘦成一道闪电 0.目录 背景介绍 分析与探索 总结与反思 参考文献 1.背景 ...

  2. 梯度提升决策树(GBDT)与XGBoost、LightGBM

    20211224 [机器学习算法总结]XGBoost_yyy430的博客-CSDN博客_xgboost xgboost参数 默认:auto.XGBoost中使用的树构造算法.可选项:auto,exac ...

  3. 3. 梯度提升决策树(GBDT)详解

    一.提升树 以决策树为基函数的提升方法称为提升树.其中,分类问题采用二叉分类树,回归问题采用二叉回归树.sklearn中的提升树采用的是CART树.模型可以表示为决策树的加法模型: 其中,表示决策树, ...

  4. [机器学习]梯度提升决策树--GBDT

    概述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由 ...

  5. 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者...

    python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...

  6. GBDT:梯度提升决策树

    From http://blog.csdn.net/suranxu007/   AND     http://www.jianshu.com/p/005a4e6ac775 综述   GBDT(Grad ...

  7. 【机器学习】深入剖析梯度提升决策树(GBDT)分类与回归

    1. 梯度提升决策树概述 梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是以决策树为基学习器的一种Boosting算法,它在每一轮迭代中建立一个决策树,使当 ...

  8. 机器学习 の04 梯度提升决策树GBDT

    机器学习 の04 梯度提升决策树GBDT GBDT的背景知识 集成学习(ensemble learning) Bagging(Bootstrap Aggregating)算法 Boosting提升算法 ...

  9. 梯度提升决策树GBDT及其优秀改进XGBoost的浅析

    梯度提升决策树 英文是Gradient Boosting Decision Tree (GBDT).是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案.值得注意的是,GBDT中 ...

最新文章

  1. wikioi 1083 Cantor表
  2. nginx 一个请求发给多台机器_Nginx系列二:负载均衡与反向代理
  3. VoWi-Fi能给LTE时代的语音通信体验带来什么?
  4. nginx如何处理php请求,Nginx是如何处理HTTP请求的
  5. git安装,windows下git bash默认目录更改
  6. SpringMvc之参数绑定注解详解
  7. 敏捷需要重构吗?不需要吗?
  8. EF Core 数据库 Provider 一览
  9. 期权这块「饼」,互联网人吃不下去了
  10. 让C68平台“冷又静”
  11. JavaScript模块化开发(一)基础知识
  12. 官方Caffe—Microsoft编译安装
  13. quartz小案例及相关属性
  14. wps文档服务器授权怎么解,如何解决WPS提示授权已到期的问题
  15. IP-guard23个功能模块简介
  16. ie浏览器代理设置方法 怎么给IE浏览器设置代理?
  17. 【一点分享】Mysql高级特性:Event定时任务,用作定时调度ETL也很香。
  18. pure seq2seq
  19. 【LeetCode】86. 分隔链表
  20. 怎样找回u盘里误删的文件

热门文章

  1. 词法作用域和动态作用域
  2. poj 1964 Cow Cycling(dp)
  3. mysql单表多timestamp的current_timestamp设置问题
  4. [codevs 1913] 数字梯形问题
  5. 控件的实际大小与呈现大小
  6. printf(%d, -10u); 这个输出什么呀, 0或1?
  7. Java开发字符串JSON处理
  8. IOCP , kqueue , epoll ... 有多重要?
  9. CDMA模块上网设置的过程
  10. 用ASP.NET上传图片并生成带版权信息的缩略图