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

Platform For AI:XGBoost トレーニング

最終更新日:Mar 01, 2026

XGBoost(eXtreme Gradient Boosting)は、使いやすさと堅牢性を向上させた勾配ブースティングアルゴリズムです。機械学習の本番システムおよび競技会の両方で広く採用されています。XGBoost は分類および回帰タスクをサポートします。

Platform for AI(PAI)における XGBoost トレーニングコンポーネントは、オープンソースの XGBoost ライブラリを基盤として最適化されており、操作性および PAI プラットフォームとの互換性が向上しています。本トピックでは、XGBoost トレーニングコンポーネントの構成方法について説明します。

制限事項

XGBoost トレーニングコンポーネントは、以下の計算リソース上で実行されます:

  • MaxCompute

  • Flink

  • Deep Learning Containers(DLC)

データ形式

このコンポーネントは、テーブル形式または LibSVM 形式のデータを受け付けます。使用する形式は、フィールド設定 タブのパラメーターで指定します:テーブル形式の場合は featureCols を、LibSVM 形式の場合は vectorCol を使用します。これらの 2 つのパラメーターは相互排他です。

テーブル形式

テーブル形式では、各行が 1 つのデータインスタンスを表します。列には特徴値とラベルが含まれます。

f0f1label
0.110
0.921

LibSVM 形式

LibSVM 形式では、各行に疎な特徴値ペアが含まれます。各エントリは index:value 表記を使用します。以下の例は、サンプルの LibSVM データを示しています:

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 94:1 101:1 104:1 116:1 123:1
0: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
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
2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53: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
0: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 コンソールでのコンポーネントの構成

XGBoost トレーニングコンポーネントは、Machine Learning Designer で構成できます。パラメーターは、以下の 3 つのタブに分類されています:

  • フィールド設定:入力データ構造およびモデル保存先を定義します。

  • パラメーター設定:XGBoost トレーニングアルゴリズムの動作を制御します。

  • 実行チューニング:分散トレーニングリソースを構成します。

フィールド設定

パラメーター説明
labelColStringラベル列。
featureColsString 配列テーブル形式の特徴列。このパラメーターは vectorCol と相互排他です。featureCols を指定した場合、入力データはテーブル形式である必要があります。
vectorColStringLibSVM 形式のベクター列。このパラメーターは featureCols と相互排他です。vectorCol を指定した場合、入力データは LibSVM 形式である必要があります。
weightColString重み列の名前。
モデルファイルパスの設定String学習済みモデルを保存する Object Storage Service(OSS)バケットのパス。

パラメーター設定

これらのパラメーターは、トレーニング動作を制御する標準的な XGBoost ハイパーパラメーターに対応しています。

トレーニング目的

パラメーターデフォルト説明
ブースティングの反復回数Integer--トレーニング反復回数(ブースティング反復回数)。
objectiveStringbinary:logistic学習タスクおよび対応する学習目的。
ベーススコア浮動小数点数0.5グローバルなバイアスであり、すべてのインスタンスに対する初期予測スコアとして機能します。
クラス数Integer--多クラス分類タスクにおけるクラス数。

ツリー構築

パラメーターデフォルト説明
ツリーメソッドStringautoツリー構築アルゴリズム。有効な値: autoexactapproxhist
ツリーの最大深さInteger6各ツリーの最大深さ。この値を増加させると、モデルが複雑になり、過学習しやすくなります。
最大リーフ数Integer0追加するリーフノードの最大数。値が 0 の場合、制限はありません。
成長ポリシーStringdepthwiseツリーへの新規ノード追加戦略。有効な値: depthwiselossguide
連続特徴をビニングする際の離散ビンの最大数Integer256連続特徴をビニングする際の離散ビンの最大数。ツリーメソッドhist に設定されている場合にのみ有効です。
sketch_eps浮動小数点数0.03スケッチングアルゴリズムにおけるビン数を制御します。ツリーメソッドapprox に設定されている場合にのみ有効です。

正則化

パラメーターデフォルト説明
重みに対する L1 正則化項浮動小数点数0.0重みに対する L1 正則化項。値が大きいほど、より保守的なモデルになります。
重みに対する L2 正則化項浮動小数点数1.0重みに対する L2 正則化項。値が大きいほど、より保守的なモデルになります。
gamma浮動小数点数0.0ツリーのリーフノードをさらに分割するために必要な最小損失低減量。
子ノードの最小重み浮動小数点数1.0子ノードに必要なインスタンス重みの合計の最小値。
最大デルタステップ浮動小数点数0.0各リーフノードで許容される最大デルタステップ。このパラメーターにより、モデル更新の粒度を調整できます。

学習率およびサンプリング

パラメーターデフォルト説明
eta浮動小数点数0.3学習率。値が小さいほどモデルの堅牢性が高まりますが、より多くのブースティング反復回数が必要になります。
scale_pos_weight浮動小数点数1.0正のクラスと負のクラスの重みをバランスさせるための比率。不均衡なデータセットに有用です。
トレーニングインスタンスのサブサンプル比率浮動小数点数1各ブースティング反復の前にサンプリングするトレーニングインスタンスの割合。
サンプリング方法StringGRADIENT_BASEDトレーニングインスタンスのサンプリング方法。有効な値: GRADIENT_BASEDUNIFORM
各レベルでの列のサブサンプル比率浮動小数点数1.0各ツリーレベルでサンプリングする列の割合。
各ノード(分割)での列のサブサンプル比率浮動小数点数1.0各ノード分割でサンプリングする列の割合。
各ツリー構築時の列のサブサンプル比率浮動小数点数1.0各ツリー構築時にサンプリングする列の割合。

制約および分布

パラメーターデフォルト説明
インタラクション制約String--相互にインタラクト可能な変数のグループ。
単調性制約String--各特徴に対する単調性制約。
Tweedie 分散パワーパラメーター浮動小数点数1.5Tweedie 分布の分散。このパラメーターは、目的関数が Tweedie 分布を使用する場合にのみ有効です。

実行チューニング

パラメーター有効値説明
ワーカー数正の整数[1, 9999]ワーカーノードの数。ワーカーあたりのメモリ(MB 単位) と併せて構成します。
ワーカーあたりのメモリ(MB 単位)正の整数[1024, 64 × 1024]各ワーカーノードに割り当てるメモリ量(MB 単位)。

操作手順

本セクションでは、ヒッグスボソン分類の例を通じて、Machine Learning Designer における XGBoost トレーニングコンポーネントの使用方法を説明します。この例のパイプラインは、プリセットテンプレートから構築されています。テンプレート「XGBoost アルゴリズムを用いたヒッグスボソンの識別」からパイプラインを作成する方法については、「プリセットテンプレートからのパイプライン作成」をご参照ください。

評価用に出力形式を変換

XGBoost トレーニングコンポーネントは、オープンソースの XGBoost ライブラリが出力する JSON オブジェクトをシリアル化した JSON 文字列を生成します。モデル予測を評価するには、この出力を評価コンポーネントが処理可能な形式に変換する必要があります。

このために、XGBoost Predict コンポーネントの後続コンポーネントとして、SQL スクリプト コンポーネントを追加します。SQL スクリプトコンポーネントは、予測出力を バイナリ分類評価 V2 コンポーネントで要求される形式に変換します。以下の SQL コードを使用します:

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 Predict」をご参照ください。

  • Machine Learning Designer では、幅広いプリセットアルゴリズムコンポーネントが提供されています。全リストについては、「コンポーネントリファレンス:全コンポーネントの概要」をご参照ください。