天天看點

lightgbm API參數解釋

import lightgbm as lgb
           

PS:注意,當使用lgb時一定要注意參數名稱是否寫錯,當參數名稱輸入錯時,lgb是不會報錯的,參數名寫錯時lgb會當做無輸入處理。

lightgbm.cv使用方法

params_lgb = {
    'boosting': 'gbdt', 
    'objective': 'quantile', 
     'n_jobs':-1,
    'learning_rate': 0.1, 
    'num_leaves': 50, 
    'max_depth': 6,
    'subsample': 0.8, 
    'colsample_bytree': 0.8, 
}
train_data_lgb = lgb.Dataset(train_x, train_y, silent=True)
cv_results = lgb.cv(
    params_lgb, train_data_lgb, num_boost_round=10000, nfold=5, stratified=False, shuffle=False, metrics='l2',
    early_stopping_rounds=100, verbose_eval=50, show_stdv=True, seed=2020)
           

lightgbm官方文檔

重要參數

params 基學習器的參數。詳細參數就是LGBRegressor或者LGBClassifier的參數。

train_set 訓練集,需要首先使用train_data = lgb.Dataset(train_x,train_y,silient = True)。

num_boost_round 最大疊代次數,建議寫大一些,可以通過早停機制提前終止訓練

nfold n折交叉驗證。

metrics 評價标準。

early_stopping_rounds 早停決策,若n輪疊代之後metrics沒有進步,則終止訓練。注意,設定此項務必設定metrics,否則lgb會按照metrics缺失處理。

shuffle是否洗牌。

verbose_eval 進行n次驗證後,報告metrics情況。

fobj 自定義目标函數。

feval 自定義評價标準。如有需要,自己去官網檢視一下怎麼實作,暫時我沒有用到。

lgb.cv的傳回值

傳回值是一個字典,show一下python小白都會用,一般用到的方法有。

len(cv_results[‘l2-mean’]) 确定基學習器的數量。

cv_results[‘l2-mean’][-1] 确定最後得分

LGMRegressor使用方法

LGM官方文檔

參數

PART1 不需要調試的參數

boosting_type :‘gbdt’,‘rf’,‘dart’

n_jobs 幾核cpu

silent 預設選擇True,選擇False會輸出很多模組化中的細節,作用不大還刷屏。

objective 目标函數

random_state 随機數

PART2 需要調試的參數

learning_rate:學習率,初始狀态建議選擇較大的學習率,設定為0.1.

n_estimators :樹的數量,初始狀态适配lr = 0.1

這兩個參數是一對情侶,調整一個另外一個也需要調整,互相影響巨大!

這兩個參數作用于樹的數量,不關心樹的内部。

++++++++++++++++這兩個參數需要聯調++++++++++++++++++++++++++

max_depth:每棵樹的最大深度,防止過拟合。初始狀态設定3~8。

num_leaves :每棵樹的最多葉子數,因為CART是二叉樹,是以葉子數量最大值為2 **depth,是以num_leaves要小于該值才有意義。然後lightgbm是leaf-wise,depth = leaf-1,是以depth和leaf調試一個即可。

min_child_samples:又稱為min_data_in_leaf,指要想建立一個葉子所需要的的最少樣本數,增大它可以降低過拟合。

min_child_weight:又稱為min_sum_hessian_in_leaf,指要想建立一個葉子,該葉子需要提供的最小hessian值。這兩個參數都是對建立葉子設定了門檻,可以降低葉子數量,減小過拟合。

feature_fraction:每次建立一棵樹時,随機使用多少的特征。

bagging_fraction:每次進行bagging時,随機使用多少的樣本。

bagging_freq:每建立多少棵樹,就進行一次bagging。

reg_alpha :L1正則化參數

reg_lambda :L2正則化參數

+++++++++++++上面的參數是調整每棵樹的屬性++++++++++++++++++++

lLGBMClassifier API參數解釋

和回歸差不多,參考官網看一下吧。

調參參考

參考:調參筆記1

調參筆記2

繼續閱讀