想在 GPU 上使用使用閃電般快速的提升方法?瞭解這個庫就好了。在很多工上,它都比 LightGBM 和 XGBoost 快。
儘管近年來神經網路復興並大為流行,但提升演算法在訓練樣本量有限、所需訓練時間較短、缺乏調參知識等場景依然有其不可或缺的優勢。目前代表性的提升方法有 CatBoost、Light GBM 和 XGBoost 等,本文介紹一項新的開源工作,它構建了另一種基於 GPU 的極速梯度提升決策樹和隨機森林演算法。
那麼我們為什麼加速 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