XGBoostは、勾配ブースティングアルゴリズムの拡張である。 XGBoostは、ユーザビリティと堅牢性を向上させ、機械学習プロダクションシステムや機械学習コンテストで広く使用されています。 XGBoostは分類と回帰に使用できます。 XGboost Predictコンポーネントは、Platform for AI (PAI) チームによってオープンソースのXGBoostアルゴリズムに基づいて開発されました。 XGboost Predictコンポーネントによってトレーニングされたモデルに基づいて、オフラインモデル推論を実行できます。 このトピックでは、XGboost Predictコンポーネントを設定する方法について説明します。
制限事項
MaxCompute、Flink、およびDeep Learning Containers (DLC) リソースに基づくXGboost Predictコンポーネントを使用できます。
データ形式
テーブルおよび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 Predictコンポーネントを設定できます。 下表にパラメーターを示します。
パラメーター | データ型 | 説明 | |
フィールド設定 | reservedCols | String array | 予約済みの列。 |
featureCols | String array | テーブル形式のフィーチャ列。 featureColとvectorColパラメーターの値は相互に排他的です。 入力データはテーブルタイプでなければなりません。 | |
vectorCol | String | LibSVM形式のベクトル列。 featureColパラメータとvectorColパラメータの値は相互に排他的です。 入力データはLibSVMタイプでなければなりません。 | |
パラメーター設定 | 予測結果列 | String | 出力の予測列。The prediction column in the output. |
実行チューニング | 数の労働者 | Positive integer | 労働者の数。 このパラメーターは、Memory per worker, unit MBパラメーターと一緒に使用する必要があります。 有効な値: [1, 9999] 。 |
ワーカあたりのメモリ、単位MB | Positive integer | 各ワーカーのメモリサイズ。 単位: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は、さまざまなプリセットアルゴリズムコンポーネントを提供します。 ビジネス要件に基づいて、データ処理用のコンポーネントを選択できます。 詳細については、「コンポーネントリファレンス: すべてのコンポーネントの概要」をご参照ください。