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

Platform For AI:GBDT 回帰

最終更新日:Mar 06, 2026

Gradient Boosting Decision Tree (GBDT) は高度な機械学習アルゴリズムです。このアルゴリズムは反復的な手法を用いて回帰分析のための決定木のコレクションを構築します。損失関数を段階的に最適化することで、線形および非線形の回帰問題の両方を処理し、高精度な予測結果を提供できます。

コンポーネントの設定

方法 1:ビジュアル設定

Designer ワークフロー ページに GBDT Regression コンポーネントを追加します。その後、右側のペインでパラメーターを設定します。

パラメータータイプ

パラメーター

説明

フィールド設定

入力列

トレーニングに使用する入力データソースの特徴量列です。DOUBLE 型および BIGINT 型をサポートします。

説明

特徴量列の数は 800 列を超えてはなりません。

ラベル列

DOUBLE 型および BIGINT 型をサポートします。

グループ列

DOUBLE 型および BIGINT 型をサポートします。デフォルトでは、テーブル全体が 1 つのグループとして扱われます。

パラメーター設定

損失関数タイプ

サポートされるタイプは、gbrank losslambdamart dcg losslambdamart ndcg loss、および regression loss です。

gbrank loss の Tau パラメーター

値は [0,1] の範囲内である必要があります。

gbrank および regression loss の指数底

値は [1,10] の範囲内である必要があります。

メトリックタイプ

サポートされるタイプは NDCG および DCG です。

木の数

値は 1 ~ 10000 の範囲内である必要があります。

学習率

値は (0,1) の範囲内である必要があります。

リーフノードの最大数

値は 1 ~ 1000 の範囲内である必要があります。

木の最大深さ

値は 1 ~ 11 の範囲内である必要があります。

リーフノード上の最小サンプル数

値は 1 ~ 1000 の範囲内である必要があります。

サンプル抽出比率

値は (0,1) の範囲内である必要があります。

トレーニング中の特徴量抽出比率

値は (0,1) の範囲内である必要があります。

テストサンプルの比率

値は [0,1) の範囲内である必要があります。

乱数ジェネレータのシード

値は [0,10] の範囲内である必要があります。

ニュートン法を使用して学習する

ニュートン法を使用するかどうかを指定します。

特徴量の最大分割数

値は 1 ~ 1000 の範囲内である必要があります。

実行チューニング

計算コア数

システムは入力データ量に基づいて自動的にトレーニングインスタンス数を割り当てます。

コアあたりのメモリ

システムは入力データ量に基づいて自動的にメモリを割り当てます。単位は MB です。

方法 2:PAI コマンドの使用

PAI コマンドを使用して GBDT Regression コンポーネントのパラメーターを設定します。SQL Script コンポーネントを使用して PAI コマンドを呼び出すことができます。詳細については、「SQL Script」をご参照ください。

PAI -name gbdt
    -project algo_public
    -DfeatureSplitValueMaxSize="500"
    -DlossType="0"
    -DrandSeed="0"
    -DnewtonStep="0"
    -Dshrinkage="0.05"
    -DmaxLeafCount="32"
    -DlabelColName="campaign"
    -DinputTableName="bank_data_partition"
    -DminLeafSampleCount="500"
    -DsampleRatio="0.6"
    -DgroupIDColName="age"
    -DmaxDepth="11"
    -DmodelName="xlab_m_GBDT_83602"
    -DmetricType="2"
    -DfeatureRatio="0.6"
    -DinputTablePartitions="pt=20150501"
    -Dtau="0.6"
    -Dp="1"
    -DtestRatio="0.0"
    -DfeatureColNames="previous,cons_conf_idx,euribor3m"
    -DtreeCount="500"

パラメーター

必須

デフォルト値

説明

inputTableName

Yes

None

入力テーブルの名前です。

featureColNames

No

All numeric columns

トレーニングに使用する入力テーブル内の特徴量列の名前です。DOUBLE 型および BIGINT 型をサポートします。

labelColName

Yes

None

入力テーブル内のラベル列の名前です。DOUBLE 型および BIGINT 型をサポートします。

inputTablePartitions

No

All partitions

トレーニングに使用する入力テーブルのパーティションです。次の形式をサポートします。

  • Partition_name=value

  • name1=value1/name2=value2:マルチレベルパーティション

説明

複数のパーティションを指定する場合は、カンマ (,) で区切ります。

modelName

Yes

None

出力モデルの名前です。

outputImportanceTableName

No

None

特徴量重要度の出力テーブル名です。

groupIDColName

No

Full table

データのグルーピング列です。

lossType

No

0

損失関数です。次のタイプをサポートします。

  • 0:GBRANK

  • 1:LAMBDAMART_DCG

  • 2:LAMBDAMART_NDCG

  • 3:LEAST_SQUARE

metricType

No

0

タイプは以下のとおりです。

  • 0:NDCG (Normalized Discounted Cumulative Gain)

  • 1:DCG (Discounted Cumulative Gain)

  • 2:AUC。このタイプは label 値が 0/1 の場合にのみ適用されます。このタイプは非推奨です。

treeCount

No

500

木の数です。値は 1 ~ 10000 の範囲内である必要があります。

shrinkage

No

0.05

学習率です。値は (0,1) の範囲内である必要があります。

maxLeafCount

No

32

リーフノードの最大数です。値は 1 ~ 1000 の範囲内である必要があります。

maxDepth

No

10

木の最大深さです。値は 1 ~ 11 の範囲内である必要があります。

minLeafSampleCount

No

500

リーフノード上の最小サンプル数です。値は 1 ~ 1000 の範囲内である必要があります。

sampleRatio

No

0.6

トレーニング中のサンプル抽出比率です。値は (0,1) の範囲内である必要があります。

featureRatio

No

0.6

トレーニング中の特徴量抽出比率です。値は (0,1) の範囲内である必要があります。

tau

No

0.6

GBRank Loss の Tau パラメーターです。値は [0,1] の範囲内である必要があります。

p

No

1

GBRank Loss の p パラメーターです。値は [1,10] の範囲内である必要があります。

randSeed

No

0

乱数ジェネレータのシードです。値は [0,10] の範囲内である必要があります。

newtonStep

No

1

ニュートン反復法を使用するかどうかを指定します。値は {0,1} です。

featureSplitValueMaxSize

No

500

特徴量の最大分割数です。値は 1 ~ 1000 の範囲内である必要があります。

lifecycle

No

None

出力テーブルのライフサイクルです。

  1. SQL 文を使用してテストデータを生成します。

    drop table if exists gbdt_ls_test_input;
    create table gbdt_ls_test_input
    as
    select
        *
    from
    (
        select
            cast(1 as double) as f0,
            cast(0 as double) as f1,
            cast(0 as double) as f2,
            cast(0 as double) as f3,
            cast(0 as bigint) as label
        union all
            select
                cast(0 as double) as f0,
                cast(1 as double) as f1,
                cast(0 as double) as f2,
                cast(0 as double) as f3,
                cast(0 as bigint) as label
        union all
            select
                cast(0 as double) as f0,
                cast(0 as double) as f1,
                cast(1 as double) as f2,
                cast(0 as double) as f3,
                cast(1 as bigint) as label
        union all
            select
                cast(0 as double) as f0,
                cast(0 as double) as f1,
                cast(0 as double) as f2,
                cast(1 as double) as f3,
                cast(1 as bigint) as label
        union all
            select
                cast(1 as double) as f0,
                cast(0 as double) as f1,
                cast(0 as double) as f2,
                cast(0 as double) as f3,
                cast(0 as bigint) as label
        union all
            select
                cast(0 as double) as f0,
                cast(1 as double) as f1,
                cast(0 as double) as f2,
                cast(0 as double) as f3,
                cast(0 as bigint) as label
    ) a;

    生成されたテストデータテーブル gbdt_ls_test_input は次のとおりです。

    f0

    f1

    f2

    f3

    label

    1.0

    0.0

    0.0

    0.0

    0

    0.0

    0.0

    1.0

    0.0

    1

    0.0

    0.0

    0.0

    1.0

    1

    0.0

    1.0

    0.0

    0.0

    0

    1.0

    0.0

    0.0

    0.0

    0

    0.0

    1.0

    0.0

    0.0

    0

  2. PAI コマンドを使用して GBDT Regression コンポーネントのトレーニングパラメーターを送信します。

    drop offlinemodel if exists gbdt_ls_test_model;
    PAI -name gbdt
        -project algo_public
        -DfeatureSplitValueMaxSize="500"
        -DlossType="3"
        -DrandSeed="0"
        -DnewtonStep="1"
        -Dshrinkage="0.5"
        -DmaxLeafCount="32"
        -DlabelColName="label"
        -DinputTableName="gbdt_ls_test_input"
        -DminLeafSampleCount="1"
        -DsampleRatio="1"
        -DmaxDepth="10"
        -DmetricType="0"
        -DmodelName="gbdt_ls_test_model"
        -DfeatureRatio="1"
        -Dp="1"
        -Dtau="0.6"
        -DtestRatio="0"
        -DfeatureColNames="f0,f1,f2,f3"
        -DtreeCount="10"
  3. PAI コマンドを使用して Prediction コンポーネントのパラメーターを送信します。

    drop table if exists gbdt_ls_test_prediction_result;
    PAI -name prediction
        -project algo_public
        -DdetailColName="prediction_detail"
        -DmodelName="gbdt_ls_test_model"
        -DitemDelimiter=","
        -DresultColName="prediction_result"
        -Dlifecycle="28"
        -DoutputTableName="gbdt_ls_test_prediction_result"
        -DscoreColName="prediction_score"
        -DkvDelimiter=":"
        -DinputTableName="gbdt_ls_test_input"
        -DenableSparse="false"
        -DappendColNames="label"
  4. 予測結果テーブル gbdt_ls_test_prediction_result を確認します。

    label

    prediction_result

    prediction_score

    prediction_detail

    0

    NULL

    0.0

    {“label”: 0}

    0

    NULL

    0.0

    {“label”: 0}

    1

    NULL

    0.9990234375

    {“label”: 0.9990234375}

    1

    NULL

    0.9990234375

    {“label”: 0.9990234375}

    0

    NULL

    0.0

    {“label”: 0}

    0

    NULL

    0.0

    {“label”: 0}