ThunderGBM:快成一道闪电的梯度提升决策树
想在 GPU 上使用使用闪电般快速的提升方法?了解这个库就好了。在很多任务上,它都比 LightGBM 和 XGBoost 快。
尽管近年来神经网络复兴并大为流行,但提升算法在训练样本量有限、所需训练时间较短、缺乏调参知识等场景依然有其不可或缺的优势。目前代表性的提升方法有 CatBoost、Light GBM 和 XGBoost 等,本文介绍一项新的开源工作,它构建了另一种基于 GPU 的极速梯度提升决策树和随机森林算法。
项目地址:github.com/Xtra-Comput…
那么我们为什么加速 GBDT 和随机森林?2017 年,一份 Kaggle 调查显示,数据挖掘和机器学习从业者中分别有 50%、46% 和 24% 的人使用决策树、随机森林和 GBM。GBDT 和随机森林经常被用来创建当前最佳的数据科学解决方案,这就要求我们能使用 GPU 在大型数据集上完成高效训练。
尽管 XGBoost 等库已经支持 GPU 了,但毕竟不是一开始就为 GPU 而设计的,因此在优化和加速上会有一些瑕疵。而 ThunderGBM 旨在帮助用户轻松高效地应用 GBDT 和随机森林来解决问题,它可以利用 GPU 完成高效训练。
对于 GPU 而言,ThunderGBM 在很多任务上都比其它几个库要快。
ThunderGBM 的主要特征如下:
通常是其它库的 10 倍。
支持 Python(scikit-learn)接口。
支持操作系统 Linux。
支持分类、回归和排序。
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:快成一道闪电的梯度提升决策树相关推荐
- 【性能优化】如何让APK瘦成一道闪电
转载请标注来源:http://www.cnblogs.com/charles04/p/8547273.html 如何让APK瘦成一道闪电 0.目录 背景介绍 分析与探索 总结与反思 参考文献 1.背景 ...
- 梯度提升决策树(GBDT)与XGBoost、LightGBM
20211224 [机器学习算法总结]XGBoost_yyy430的博客-CSDN博客_xgboost xgboost参数 默认:auto.XGBoost中使用的树构造算法.可选项:auto,exac ...
- 3. 梯度提升决策树(GBDT)详解
一.提升树 以决策树为基函数的提升方法称为提升树.其中,分类问题采用二叉分类树,回归问题采用二叉回归树.sklearn中的提升树采用的是CART树.模型可以表示为决策树的加法模型: 其中,表示决策树, ...
- [机器学习]梯度提升决策树--GBDT
概述 GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由 ...
- 机器学习之路:python 集成分类器 随机森林分类RandomForestClassifier 梯度提升决策树分类GradientBoostingClassifier 预测泰坦尼克号幸存者...
python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/l ...
- GBDT:梯度提升决策树
From http://blog.csdn.net/suranxu007/ AND http://www.jianshu.com/p/005a4e6ac775 综述 GBDT(Grad ...
- 【机器学习】深入剖析梯度提升决策树(GBDT)分类与回归
1. 梯度提升决策树概述 梯度提升决策树(Gradient Boosting Decision Tree,GBDT)是以决策树为基学习器的一种Boosting算法,它在每一轮迭代中建立一个决策树,使当 ...
- 机器学习 の04 梯度提升决策树GBDT
机器学习 の04 梯度提升决策树GBDT GBDT的背景知识 集成学习(ensemble learning) Bagging(Bootstrap Aggregating)算法 Boosting提升算法 ...
- 梯度提升决策树GBDT及其优秀改进XGBoost的浅析
梯度提升决策树 英文是Gradient Boosting Decision Tree (GBDT).是一种迭代的决策树算法,由多棵决策树组成,将所有树的结论累加起来做最终答案.值得注意的是,GBDT中 ...
最新文章
- wikioi 1083 Cantor表
- nginx 一个请求发给多台机器_Nginx系列二:负载均衡与反向代理
- VoWi-Fi能给LTE时代的语音通信体验带来什么?
- nginx如何处理php请求,Nginx是如何处理HTTP请求的
- git安装,windows下git bash默认目录更改
- SpringMvc之参数绑定注解详解
- 敏捷需要重构吗?不需要吗?
- EF Core 数据库 Provider 一览
- 期权这块「饼」,互联网人吃不下去了
- 让C68平台“冷又静”
- JavaScript模块化开发(一)基础知识
- 官方Caffe—Microsoft编译安装
- quartz小案例及相关属性
- wps文档服务器授权怎么解,如何解决WPS提示授权已到期的问题
- IP-guard23个功能模块简介
- ie浏览器代理设置方法 怎么给IE浏览器设置代理?
- 【一点分享】Mysql高级特性:Event定时任务,用作定时调度ETL也很香。
- pure seq2seq
- 【LeetCode】86. 分隔链表
- 怎样找回u盘里误删的文件
热门文章
- 词法作用域和动态作用域
- poj 1964 Cow Cycling(dp)
- mysql单表多timestamp的current_timestamp设置问题
- [codevs 1913] 数字梯形问题
- 控件的实际大小与呈现大小
- printf(%d, -10u); 这个输出什么呀, 0或1?
- Java开发字符串JSON处理
- IOCP , kqueue , epoll ... 有多重要?
- CDMA模块上网设置的过程
- 用ASP.NET上传图片并生成带版权信息的缩略图