ThunderGBM:快成一道閃電的梯度提升決策樹

想在 GPU 上使用使用閃電般快速的提升方法?瞭解這個庫就好了。在很多任務上,它都比 LightGBM 和 XGBoost 快。

儘管近年來神經網絡復興並大為流行,但提升算法在訓練樣本量有限、所需訓練時間較短、缺乏調參知識等場景依然有其不可或缺的優勢。目前代表性的提升方法有 CatBoost、Light GBM 和 XGBoost 等,本文介紹一項新的開源工作,它構建了另一種基於 GPU 的極速梯度提升決策樹和隨機森林算法。

項目地址:https://github.com/Xtra-Computing/thundergbm

那麼我們為什麼加速 GBDT 和隨機森林?2017 年,一份 Kaggle 調查顯示,數據挖掘和機器學習從業者中分別有 50%、46% 和 24% 的人使用決策樹、隨機森林和 GBM。GBDT 和隨機森林經常被用來創建當前最佳的數據科學解決方案,這就要求我們能使用 GPU 在大型數據集上完成高效訓練。

ThunderGBM:快成一道閃電的梯度提升決策樹

兩棵決策樹的集成方法,選自 XGBoost 文檔。

儘管 XGBoost 等庫已經支持 GPU 了,但畢竟不是一開始就為 GPU 而設計的,因此在優化和加速上會有一些瑕疵。而 ThunderGBM 旨在幫助用戶輕鬆高效地應用 GBDT 和隨機森林來解決問題,它可以利用 GPU 完成高效訓練。

ThunderGBM:快成一道閃電的梯度提升決策樹

對於 GPU 而言,ThunderGBM 在很多任務上都比其它幾個庫要快。

ThunderGBM 的主要特徵如下:

  • 通常是其它庫的 10 倍。
  • 支持 Python(scikit-learn)接口。
  • 支持操作系統 Linux。
  • 支持分類、迴歸和排序。
ThunderGBM:快成一道閃電的梯度提升決策樹

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.git
cd thundergbm
# under the directory of thundergbm
git submodule init cub && git submodule update

在 Linux 上構建:

#under the directory of thundergbm
mkdir build && cd build && cmake .. && make -j

快速測試:

./bin/thundergbm-train ../dataset/machine.conf
./bin/thundergbm-predict ../dataset/machine.conf

成功運行後,你將看到 RMSE = 0.489562。

相關研究

如果讀者對實現的技術及模型細節感興趣,可以查閱原論文:

論文地址:https://www.comp.nus.edu.sg/~wenzy/papers/thundergbm.pdf

其它相關文獻:

  • 論文: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


分享到:


相關文章: