このトピックでは、光勾配ブースティングマシン (LightGBM) アルゴリズムについて説明します。
背景情報
LightGBMは、決定木アルゴリズムに基づく分散型勾配リフティングフレームワークです。 LightGBMは、並列かつ大規模なデータ処理をサポートする、高速、効率的、低メモリ、高精度のツールとして設計されています。 LightGBMは、データによって占有されるメモリの量を削減し、通信コストを削減し、マルチノードelastic parallel query (ePQ) の効率を向上させ、データコンピューティングの線形高速化を実現します。
シナリオ
LightGBMは、GBDTモデル、ランダムフォレスト、ロジスティック回帰モデルを含むアルゴリズムフレームワークです。 LightGBMは、主にバイナリ分類、マルチクラス分類、ソートなどのシナリオで使用されます。
例えば、ほとんどの個人化商品推薦シナリオでは、クリック推定モデルが必要である。 クリック、クリック解除、購入などの履歴ユーザー行動をトレーニングデータとして使用して、ユーザーのクリックまたは購入の確率を予測できます。 次の特徴は、ユーザーの行動とユーザー属性に基づいて抽出されます。
カテゴリ機能: 性別 (男性または女性) などの文字列タイプ。
商品カテゴリ: 衣類、おもちゃ、電子機器などのカテゴリ。
数値機能: ユーザーアクティビティや商品価格などの整数または浮動小数点のデータ型。
パラメーター
次の表に示すパラメーターの値は、モデルの作成に使用されるCREATE model
ステートメントで指定されたmodel_parameter
パラメーターの値と同じです。 ビジネス要件に基づいてパラメーターを設定できます。
パラメーター | 説明 |
boosting_type | 弱い学習者のタイプ。 有効な値:
説明 このパラメーター値に値を指定する場合は、値を単一引用符 (') で囲みます。 例: |
n_estimators | 反復回数。 値は整数でなければなりません。 デフォルト値:100 |
損失 | 学習タスクとタスクの学習目標。 有効な値:
|
num_leaves | 葉の数。 値は整数でなければなりません。 デフォルト値: 128 |
max_depth | ツリーの最大深さ。 値は整数でなければなりません。 デフォルト値 : 7 説明 このパラメーターが-1に設定されている場合、ツリーの深さは指定されません。 このパラメーターは、オーバーフィッティングを防ぐために注意して指定することを推奨します。 |
learning_rate | 学習率。 値は浮動小数点数でなければなりません。 デフォルト値: 0.06 |
max_leaf_nodes | ツリー内のリーフノードの最大数。 値は整数または空のままにすることができます。 デフォルトでは、このパラメータは空のままです。これは、ツリー内のリーフノードの数が制限されていないことを示します。 |
min_samples_leaf | ツリー内のサンプルリーフノードの最小数。 値は整数でなければなりません。 デフォルト値は 20 です。 説明 リーフノードの数がサンプルリーフノードの最小数よりも少ない場合、ノードは兄弟ノードと共にプルーニングされる。 |
サブサンプル | すべてのサンプルに対するトレーニングサンプルの比率。 値は浮動小数点数でなければなりません。 有効な値は 0~1 です。 デフォルト値は 1 です。 説明 このパラメータの値が1未満の場合、この割合の値を有するサンプルのみがトレーニングで使用される。 |
max_features | すべての機能に対するトレーニング機能の比率。 値は浮動小数点数でなければなりません。 有効な値は 0~1 です。 デフォルト値は 1 です。 |
max_depth | ツリーの最大深さ。 値は整数でなければなりません。 デフォルト値 : 7 説明 より大きな値は、より高い精度を指定する。 しかしながら、過剰適合が生じることがある。 |
random_state | 乱数シード。 値は整数でなければなりません。 デフォルト値は 1 です。 説明 異なる値が存在する場合、ツリーの構築およびトレーニングデータのセグメンテーションが影響を受ける可能性がある。 |
model_type | モデルのストレージタイプ。 有効な値:
|
n_jobs | トレーニングに使用されるスレッドの数。 値は整数でなければなりません。 デフォルト値: 4。 説明 トレーニングに使用される多数のスレッドは、トレーニング速度を向上させることができる。 |
is_unbalance | サンプルの不均衡に対処するために、サンプル数が少ないカテゴリの重みを増やすかどうかを指定します。 有効な値:
|
categorical_feature | カテゴリ機能。 値は文字列配列である必要があります。 ほとんどの場合、LightGBMはデータ型を決定し、categorical_featureパラメーターを自動的に設定します。 このパラメーターを設定することもできます。 たとえば、 |
オートml | 自動パラメーター調整機能を有効にするかどうかを指定します。 有効な値:
|
automl_train_tag | トレーニングのラベル。 |
automl_test_tag | テストのラベル。 |
automl_column | 自動パラメーター調整機能で指定されたトレーニングセットまたは開発セットの列の名前。 説明
最適パラメータは、学習レートセット「0.05、0.04、0.03、0.01」とサンプルサンプリングパラメータ「0.6、0.5」から得られる。 |
例
モデルとオフライントレーニングタスクを作成します。
/* polar4ai * /
モデルairline_gbmを作成する
(model_class = 'lightgbm' 、x_cols = '航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ' 、y_cols='Delay',model_parameter=(boosting_type='gbdt'))
AS (SELECT * からdb4ai.airlines);
モデルを評価します。
/* polar4ai * /
EVALUATEからの航空会社を選択 (モデルairline_gbm、SELECT * からdb4ai.airlines LIMIT 20)
(x_cols = 'Airline,Flight,AirportFrom,AirportTo,DayOfWeek,Time,Length',y_cols='Delay',metrics='acc');
予測にモデルを使用します。
/* polar4ai * /
PREDICTからの航空会社を選択 (モデルairline_gbm、SELECT * からdb4ai.airlines制限20)
(x_cols = '航空会社、フライト、AirportFrom、AirportTo、DayOfWeek、時間、長さ');