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

2021-09-24 08:29:51 字數 1388 閱讀 5942

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

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

那麼我們為什麼加速 gbdt 和隨機森林?2017 年,乙份 kaggle 調查顯示,資料探勘和機器學習從業者中分別有 50%、46% 和 24% 的人使用決策樹、隨機森林和 gbm。gbdt 和隨機森林經常被用來建立當前最佳的資料科學解決方案,這就要求我們能使用 gpu 在大型資料集上完成高效訓練。

兩棵決策樹的整合方法,選自 xgboost 文件。

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

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

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  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。

相關研究

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

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...

一道oracle試題

做不出來時感覺好難啊,思路千千萬,就是沒想到用 order by 和 rownum 題目如下 有下面三個表 商品product 商品號productid,商品名productname,單價unitprice,商品類別category,商provider 顧客customer 顧客號customeri...