lightgbm是微軟推出的一款boosting框架,相對於傳統的xgboost有以下優點
更快的訓練效率它摒棄了現在大部分gbdt使用的按層生長(level-wise)的決策樹生長策略,使用帶有深度限制的按葉子生長(leaf-wise)的策略。level-wise過一次資料可以同時**同一層的葉子,容易進行多執行緒優化,也好控制模型複雜度,不容易過擬合。但實際上level-wise是一種低效的演算法,因為它不加區分的對待同一層的葉子,帶來了很多沒必要的開銷,因為實際上很多葉子的**增益較低,沒必要進行搜尋和**。低記憶體使用
更好的準確率
支援並行學習
可處理大規模資料
leaf-wise則是一種更為高效的策略,每次從當前所有葉子中,找到**增益最大的乙個葉子,然後**,如此迴圈。因此同level-wise相比,在**次數相同的情況下,leaf-wise可以降低更多的誤差,得到更好的精度。leaf-wise的缺點是可能會長出比較深的決策樹,產生過擬合。因此lightgbm在leaf-wise之上增加了乙個最大深度的限制,在保證高效率的同時防止過擬合。
傳統的xgboost生長方式如下,按層生長。
lightgbm增加了葉子節點的**增益
**參考
import lightgbm as lgb
train_data = lgb.dataset(xtrain, label=ytrain)
test_data = lgb.dataset(xtest, label=ytest)
# specify parameters via map
params =
num_round = 10
# start training
start_time = time.time()
bst = lgb.train(params, train_data, num_round)
end_time = time.time()
print('the training time = {}'.format(end_time - start_time))
# get prediction and evaluate
ypred_onehot = bst.predict(xtest)
ypred =
for i in range(len(ypred_onehot)):
accuracy = np.sum(ypred == ytest) / len(ypred)
print('test accuracy = {}'.format(accuracy))
機器學習 LightGBM
lightgbm light gradient boosting machine 是乙個基於決策樹演算法的快速的 分布式的 高效能 gradient boosting gbdt gbrt gbm 或 mart 框架,可被用於排行 分類以及其他許多機器學習任務中。gbdt 雖然是個強力的模型,但卻有著...
機器學習演算法 整合學習 lightGBM
lightgbm 是整合學習的一種,是梯度提公升決策樹的高效實現。主要有幾方面優化 機器學習 lightgbm a highly efficient gradient boosting decision tree lightgbm 特性 features lightgbm 直方圖演算法用於搜尋特徵的...
LightGBM演算法梳理
leaf wise vs level wise 特徵並行和資料並行 順序訪問梯度 直接支援類別特徵 調參 參考資料 lightgbm包含兩個關鍵點 1 light,輕量級 2 gbm,梯度提公升機。lightgbm是乙個梯度boosting框架,使用基於學習演算法的決策樹。具有以下特點 它是針對xg...