📠

LightGBMのハイパーパラメータのデフォルト値を決めたい

2021/12/27に公開

結論

params = {
    'boosting_type': 'gbdt',  # default = 'gbdt'
    'num_leaves': 63,         # default = 31,
    'learning_rate': 0.01,    # default = 0.1
    'feature_fraction': 0.8,  # default = 1.0
    'bagging_freq': 1,        # default = 0
    'bagging_fraction': 0.8,  # default = 1.0
    'random_state': 0,        # default = None
}

説明

過去コンペのハイパーパラメーターを試してくれてる人がいたので、ここを元に見ている。

パラメーター 説明
boosting_type BoostingのType。多くはgbdtだが、まれにdartgossもある。
num_leaves 葉の数。かなり多様だが、上記ページだと中央値63。
learning_rate 学習率。0.01から0.005くらいまでが多い。
feature_fraction 特徴量側のサンプリング。0.8近辺が多い。
bagging_freq Baggingを何回に1回行うか。1か5
bagging_fraction サンプル側のサンプリング。0.8近辺が多い。
random_state 乱数

その他調整されてることが多いパラメーター

  • lambda_l1, lambda_l2(正則化項)

  • max_depth(木の深さ)

num_leaves を木の深さから定義したもの。


たまに調整されるパラメーター

  • min_child_weight, min_child_samples(どこまで分割するかの定義)

weightはノードの重み、samplesはノード中のサンプル数。

サンプル数はデータ数にも依存するので注意

  • max_bin(特徴量をどれだけ大雑把に捉えるか)

デフォは255。公式では "For Better Accuracy" にて推奨されてるが、あんまり増やしてる人は多くない。


参考

  • 【随時更新】Kaggleテーブルデータコンペできっと役立つTipsまとめ

CPMP流のあたりを参考にしました

https://naotaka1128.hatenadiary.jp/entry/kaggle-compe-tips

  • LightGBMのパラメーターページ(公式)

https://lightgbm.readthedocs.io/en/latest/Parameters.html

  • LightGBMのパラメーターチューニングページ(公式)

https://lightgbm.readthedocs.io/en/latest/Parameters-Tuning.html


Discussion