機械学習
XGBoost(分類)モデルの作成
概要
このブロックは、BigQuery MLopen_in_newを使い、BigQueryopen_in_new上のトレーニングデータでブーストツリーopen_in_newの分類モデル(XGBoostopen_in_newベースの分類モデル)を作成します。作成したモデルは、BigQueryとDataEditorに登録されます。
このブロックを利用することで、ブーストツリーの分類モデルを利用した以下のようなユースケースに対応できます。
- 蓄積されていくデータを用いた再学習
- モデル作成の試行錯誤
留意事項
- ブーストツリーは、教師あり学習にあたるため、トレーニングデータに推論/予測の対象となるカラムが必要です。
- このブロックは、モデル作成の完了を待たずに終了します。
トレーニングの状態や結果は、DataEditorのモデル一覧で確認できます。 - 「Slack通知設定」プロパティを利用すると、モデル作成の完了をSlackで確認できます。
「Slack通知設定」プロパティで指定する内容は、あらかじめプロジェクト設定の通知設定で作成しておきます。
プロパティ
プロパティ名 | 説明 |
---|---|
ブロック名 |
編集パネルに配置した当該ブロックの表示名が変更できます。 ブロックリストパネル中のブロック名は変更されません。 |
GCPサービスアカウント |
GCPサービスアカウントのリストから適切なGCPサービスアカウントを選択します。 |
入力BigQueryデータセット |
トレーニングデータを格納したBigQueryテーブルが属するBigQueryデータセットを指定します。 |
入力BigQueryテーブル |
トレーニングデータを格納したBigQueryテーブルを指定します。 |
モデル名 |
DataEditorで参照する際のモデルの名前を指定します。 DataEditorに登録済の名前を指定するとモデルは更新されます。 |
トレーニング完了時に付加するタグ名 |
トレーニングが完了した際に、タグも同時に付けたい場合に指定します。 タグは、別途「推論/予測に使用するタグの設定」ブロックを使って、後付けできます。 |
推論/予測の対象に使用するカラム名 |
トレーニングデータの推論/予測の対象に使用するカラム名を指定します。 |
ブロックメモ | このブロックに関するメモが記載できます。このブロックの処理に影響しません。 |
トレーニング完了時からのモデル保持日数(0は制限なし) |
トレーニング完了時点からモデルを保持する日数を指定します。指定した日数を経過するとモデルは自動で削除されます。0日を指定すると、自動削除されません。 初期値は、0日です。 |
ブースタータイプ |
使用するブースターのタイプを指定します。 |
DARTブースターの正規化アルゴリズムのタイプ |
DARTブースターの正規化アルゴリズムのタイプを指定します。ブースタータイプで、「DARTブースター」を指定したときのみ有効です。
|
各反復中に構築された並列ツリーの数 |
各反復の間に構築される並列ツリーの数を指定します。初期値は1です。ブーストされたランダムフォレストを学習するには、この値を1よりも大きく設定してください。 |
ツリー構築アルゴリズムのタイプ |
ツリー構築アルゴリズムのタイプを指定します。
|
分割するために子で必要なインスタンスの重みの最小合計 |
さらなるパーティショニングに必要な子ノードのインスタンスの重みの最小値を指定します。 ツリーの分割ステップの結果、インスタンス重みの合計が指定した値よりも小さいリーフノードが得られた場合、構築プロセスはそれ以上の分割を停止します。指定した値が大きいほど、アルゴリズムはより保守的になります。 値は必ず0以上を指定します。 |
各ツリーを構築する際の列のサブサンプル比 |
各ツリーを構築する際の列のサブサンプル率を指定します。 サブサンプリングは、構築されたツリーごとに1回行われます。 値は0から1の間で指定します。 |
各レベルの列のサブサンプル比 |
各レベルの列のサブサンプル率を指定します。 サブサンプリングは、ツリー内の新しい深さレベルへ到達するごとに1回行われます。列は、現在のツリーで選択された列のセットからサブサンプリングされます。 値は0から1の間で指定します。 |
各ノードの列のサブサンプル比 |
各ノード(スプリット)の列のサブサンプル率を指定します。 サブサンプリングは、新しいスプリットが評価されるたびに1回発生します。 列は、現在のレベルで選択された列のセットからサブサンプリングされます。 値は0から1の間で指定します。 |
ツリーの葉ノードにさらにパーティションを作成するために必要な最小の損失削減 |
ツリーのリーフノードでさらに分割するのに必要な損失の最小値を指定します。 指定した値が大きいほど、アルゴリズムはより保守的になります。 |
ツリーの最大深度 |
ツリーの最大深度を指定します。 |
トレーニングインスタンスのサブサンプル比 |
トレーニングインスタンスのサブサンプル率を指定します。 この値を0.5に設定すると、ツリーを成長させる前にトレーニングがトレーニングデータの半分をランダムにサンプリングすることになり、オーバーフィットを防ぐことができます。 サブサンプリングは、各反復ごとに1回行われます。 値は0から1の間で指定します。 |
各クラスラベルに使用する重み |
クラスラベルごとに重みを設定します。 |
適用されるL1正則化の量 |
L1正則化open_in_newの適用量を指定します。 |
適用されるL2正則化の量 |
L2正則化open_in_newの適用量を指定します。 |
早期停止(相対損失の改善が値よりも小さい最初の反復の後にトレーニングを停止するかどうか) |
最初の反復の後で、「トレーニングを継続するために必要な最小相対損失の改善」で指定された値よりも小さいときに、トレーニングを停止するかどうかを指定します。
|
トレーニングを継続するために必要な最小相対損失の改善 |
「早期停止」を指定した場合、トレーニングを継続するために必要な相対的な損失の最小改善量を指定します。 たとえば、0.01の値を指定すると、トレーニングを継続するためには、各反復で損失を1%減少させる必要があります。 |
過剰適合を防ぐために更新で使用されるステップサイズの収縮 |
学習率を指定します。 |
ブースティングの最大ラウンド数 |
ブースティング時の最大ラウンド数を指定します。 |
Slack通知設定(省略可) |
モデル作成完了時に、Slackへその旨のテキストメッセージを送信したい場合に、プロジェクト設定の通知設定で設定したSlack通知の名称を指定します。 Slack通知のイメージ:notificationsモデルの作成が完了したにも関わらずSlackに通知が来ない場合は、何らかの原因(指定したチャンネルがないなど)でSlackの通知に失敗している可能性があります。その場合は、プロジェクト設定の通知設定を確認してください。Slackの通知に失敗している場合は、失敗に関するメッセージが確認できます。 |
Slack通知チャンネル設定(省略可) |
通知先のSlackチャンネルを指定します。 チャンネルを指定した場合は、プロジェクト設定の通知設定のチャンネルは無視されます。 省略した場合は、通知設定で指定されたチャンネルへ通知されます。 |
Slack通知ユーザー名設定(省略可) |
通知する際のユーザー名を指定します。 ユーザー名を指定した場合は、プロジェクト設定の通知設定のユーザー名は無視されます。 省略した場合は、プロジェクト設定の通知設定で指定されたユーザー名が使われます。 |
Slack通知アイコン絵文字設定(省略可) |
通知する際の絵文字を指定します。 絵文字を指定した場合は、プロジェクト設定の通知設定の絵文字は無視されます。 省略した場合は、プロジェクト設定の通知設定で指定された絵文字が使われます。 |