すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:XGboostトレイン

最終更新日:Jul 22, 2024

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。 有効な値:

  • オート

  • 正確な

  • hist

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。 有効な値:

  • GRADIENT_ベース

  • UNIFORM

各レベルの列のサブサンプル比

浮動小数点数

各レベルの列のサブサンプル比。 デフォルト値: 1.0

各ノードの列のサブサンプル比 (分割)

浮動小数点数

各ノードの列のサブサンプル比。 デフォルト値: 1.0

各ツリーを構築する際の列のサブサンプル比

浮動小数点数

各ツリーが構築されたときの列のサブサンプル比。 デフォルト値: 1.0

成長ポリシー

String

ツリーに新しいノードを追加するために使用されるメソッド。 デフォルト値: depthwise。 有効な値:

  • depthwise

  • lossguide

ガンマ

浮動小数点数

ツリーのリーフノードに後続のパーティションを作成するために必要な最小損失削減。 デフォルト値: 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は、さまざまなプリセットアルゴリズムコンポーネントを提供します。 実際のビジネスシナリオに基づいてデータを処理するコンポーネントを選択できます。 詳細については、「コンポーネントリファレンス: すべてのコンポーネントの概要」をご参照ください。