XGBoostは、勾配ブースティングアルゴリズムの拡張である。 XGBoostは、ユーザビリティと堅牢性を向上させ、機械学習プロダクションシステムや機械学習コンテストで広く使用されています。 XGBoostは分類と回帰に使用できます。 XGboost Trainコンポーネントは、オープンソースのXGBoostに基づいて最適化されており、使いやすさとPlatform for AI (PAI) との互換性を向上させます。 このトピックでは、XGboost Trainコンポーネントを設定する方法について説明します。
制限事項
MaxCompute、Flink、およびDeep Learning Containers (DLC) リソースに基づいて、XGboost Trainコンポーネントを使用できます。
データ形式
テーブルおよびLibSVM形式がサポートされています。
サンプルテーブル形式のデータ:
f0
f1
ラベル
0.1
1
0
0.9
2
1
LibSVM形式のデータのサンプル:
サンプルデータ
1 2:1 9:1 10:1 20:1 29:1 33:1 35:1 39:1 40:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 101:1 94:1 104:1 116:1 123:1
00:1 9:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 115:1 121:1
1 2:1 8:1 18:1 20:1 29:1 33:1 35:1 39:1 41:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1
0 2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53:1 1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 97:1 105:1 113:1 119:1
00:1 9:1 18:1 20:1 22:1 33:1 35:1 38:1 44:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 115:1 121:1
0:1 8:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 116:1 121:1
PAIコンソールでのコンポーネントの設定
Machine Learning DesignerでXGboost Trainコンポーネントを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | データ型 | 説明 |
フィールド設定 | labelCol | String | ラベル列。 |
featureCols | 文字列配列 | テーブル形式のフィーチャ列。 featureColとvectorColパラメーターの値は相互に排他的です。 入力データはテーブルタイプでなければなりません。 | |
vectorCol | String | LibSVM形式のベクトル列。 featureColとvectorColパラメーターの値は相互に排他的です。 入力データはLibSVMタイプでなければなりません。 | |
weightCol | String | 重み列の名前。 | |
モデルファイルパスの設定 | String | モデルが保存されているObject Storage Service (OSS) バケットパス。 | |
パラメーター設定 | ブーストのラウンド数 | Integer | トレーニングラウンドの数。 |
客観的 | String | 学習タスクと対応する学習目標。 デフォルト値: binary:logistic | |
ベーススコア | 浮動小数点数 | すべてのインスタンスの初期予測スコアであるグローバルバイアス。 デフォルト値: 0.5 | |
クラスの数 | Integer | クラスの数。 | |
ツリーメソッド | String | ツリー構築アルゴリズム。 デフォルト値: auto。 有効な値:
| |
L1正規化項の重み | 浮動小数点数 | 重みのL1正則化項。 デフォルト値: 0.0 | |
L2正規化項の重み | 浮動小数点数 | 重みに関するL2正則化項。 デフォルト値: 1.0 | |
eta | 浮動小数点数 | 学習率。 デフォルト値: 0.3 | |
scale_pos_weight | 浮動小数点数 | 正と負の重みのバランス。 デフォルト値: 1.0 | |
sketch_eps | 浮動小数点数 | このパラメーターを使用して、ビンの数を制御できます。 このパラメーターは、Tree Methodパラメーターを約に設定した場合にのみ使用できます。デフォルト値: 0.03 | |
バケット連続フィーチャへの離散ビンの最大数 | Integer | 連続フィーチャをバケット化する離散ビンの最大数。 このパラメーターは、Tree Methodパラメーターをhistに設定した場合にのみ使用できます。 デフォルト値: 256 | |
最大深さのツリー | Integer | ツリーの最大深さ。 デフォルト値: 6 | |
マックスの葉 | Integer | 追加するリーフノードの最大数。 デフォルト値:0。 | |
最小の子供の体重 | 浮動小数点数 | 子ノードで必要な最小重み。 デフォルト値: 1.0 | |
最大デルタステップ | 浮動小数点数 | リーフノードに許可される最大デルタステップ。 このパラメータを使用すると、モデルの粒度を調整できます。 デフォルト値: 0.0 | |
トレーニングインスタンスのサブサンプル比 | 浮動小数点数 | トレーニングインスタンスのサブサンプル比。 既定値:1 | |
サンプリング方法 | String | トレーニングインスタンスのサンプリングに使用されるメソッド。 デフォルト値: GRADIENT_BASED。 有効な値:
| |
各レベルの列のサブサンプル比 | 浮動小数点数 | 各レベルの列のサブサンプル比。 デフォルト値: 1.0 | |
各ノードの列のサブサンプル比 (分割) | 浮動小数点数 | 各ノードの列のサブサンプル比。 デフォルト値: 1.0 | |
各ツリーを構築する際の列のサブサンプル比 | 浮動小数点数 | 各ツリーが構築されたときの列のサブサンプル比。 デフォルト値: 1.0 | |
成長ポリシー | String | ツリーに新しいノードを追加するために使用されるメソッド。 デフォルト値: depthwise。 有効な値:
| |
ガンマ | 浮動小数点数 | ツリーのリーフノードに後続のパーティションを作成するために必要な最小損失削減。 デフォルト値: 0.0 | |
インタラクション制約 | String | 相互作用を許可されている変数のグループ。 | |
モノトーン制約 | String | フィーチャの単調性の制約。 | |
Tweedie分散パワー | 浮動小数点数 | Tweedie分布の分散。 このパラメーターはTweedieディストリビューションでのみ有効です。 デフォルト値: 1.5 | |
実行チューニング | 数の労働者 | 正の整数 | ワーカーノードの数。 このパラメーターは、Memory per worker, unit MBパラメーターと一緒に使用する必要があります。 有効な値: [1, 9999] 。 |
ワーカあたりのメモリ、単位MB | 正の整数 | 各ワーカーノードのメモリサイズ。 単位:MB。 有効値: [1024, 64 × 1024] 。 |
手順
この例では、Higgs粒子分類シナリオを使用して、Machine Learning DesignerでXGboostコンポーネントを使用する方法を説明します。 この例で使用されるパイプラインは、プリセットテンプレートに基づいて構築されています。 XGBoostアルゴリズムを使用してHiggs粒子を識別するテンプレートに基づいてパイプラインを作成する方法については、「プリセットテンプレートからパイプラインを作成する」をご参照ください。
このコンポーネントは、オープンソースのXGBoostライブラリによって出力されたJSONオブジェクトからシリアル化されたJSON文字列を生成します。 コンポーネントによって生成されたデータを評価するには、評価コンポーネントでサポートされている形式にデータを変換する必要があります。 この例では、XGboost PredictコンポーネントのダウンストリームコンポーネントとしてSQLスクリプトコンポーネントを追加して、コンポーネントの出力を後続のバイナリ分類評価V2コンポーネントでサポートされる形式にシリアル化できます。 次のサンプルコードは、データ形式を変換するようにSQLスクリプトコンポーネントを構成する方法の例を示しています。 詳細については、「XGBoostパラメーター」をご参照ください。
set odps.sql.udf.getjsonobj.new=true;
select *, CONCAT("{\"0\":", 1.0-prob, ",\"1\":", prob, "}") as detail
FROM (
select *, cast(get_json_object(pred, '$[0]') as double) as prob FROM ${t1})
関連ドキュメント
XGboost Predictコンポーネントを使用して、XGboost Trainコンポーネントによってトレーニングされたモデルに基づいてオフライン推論を実行できます。 XGboost予測コンポーネントの設定方法については、「XGboost予測」をご参照ください。
Machine Learning Designerは、さまざまなプリセットアルゴリズムコンポーネントを提供します。 実際のビジネスシナリオに基づいてデータを処理するコンポーネントを選択できます。 詳細については、「コンポーネントリファレンス: すべてのコンポーネントの概要」をご参照ください。