LightGBMのチュートリアルを読み解く(パラメータ)

LightGBM
この記事は約2分で読めます。
スポンサーリンク

tensorflowの時はレイヤーを積み重ねて精度を上げていく方式でしたが、LigthGBMというか決定木では勝手に木の枝が成長していきます。
そのため、パラメータを指定するということは木の成長をコントロールすることになります。
盆栽を育てる気分でしょうか。

パラメータ設定

パラメータ設定はキー/バリュー型で設定するだけ。
ただ、どのキーにどの値を設定するかという部分を理解することはとても難しい。
Python-package Introduction
Parameters

LightGBMの情報として「じゃー、こっからやってみな」というありがたい情報をくれているので見てみます。

パラメータチューニング

Parameters Tuning

「min_data_in_leaf」は重要なパラメータで「最適な値は、学習サンプルの数と num_leaves に依存する」と記載されているほどです。
デフォルトは「20」が設定されていますが、ドキュメントには「大規模なデータセットでは数百から数千の値を設定」という記載もあります。

「max_depth」はツリーの深さを指定するパラメータです。
デフォルトは「-1」となり無制限となっていますが、データが小さい場合は制限をかけたほうが良いみたいです。

num_leavesは枝分かれする数を指定するパラメータです。
デフォルトは「31」で「1 < num_leaves <=131072」の範囲で指定します。
設定する場合は「2^(max_depth)」よりも小さくする必要があります。
max_depthはデフォルトだと無制限になっているので、num_leavesを設定するときはmax_depthも一緒に制限を行う必要があります。

最初に意識するパラメータ

パラメータは他にもたくさんありますが、パラメータチューニングページに記載されているパラメータを整理してみます。

パラメータデフォルト値増減備考
max_depth-1(無制限)減少
num_leaves31減少「2^(max_depth)」よりも小さくする
min_gain_to_split0増加
min_data_in_leaf20増加
min_sum_hessian_in_leaf1e-3増加
num_iterations100減少
max_bin255減少
min_data_in_bin3増加
feature_fraction1減少
max_cat_threshold32減少

タイトルとURLをコピーしました