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

機器之心發表於2019-03-08

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

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

專案地址:github.com/Xtra-Comput…

那麼我們為什麼加速 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.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


相關文章