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

Platform For AI:GBDT回帰

最終更新日:Jul 22, 2024

勾配ブースティング決定木 (GBDT) は、線形および非線形回帰シナリオに適した反復決定木アルゴリズムである。

コンポーネントの設定

次のいずれかの方法を使用して、GBDT回帰コンポーネントを設定できます。

方法1: パイプラインページでコンポーネントを設定する

GBDT回帰コンポーネントのパラメーターは、Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。

タブ

パラメーター

説明

フィールド設定

入力列

トレーニング用に入力テーブルから選択されたフィーチャ列。 DOUBLE型とBIGINT型の列はサポートされています。

説明

最大800個のフィーチャ列を選択できます。

ラベル列

ラベル列。 DOUBLE型とBIGINT型の列がサポートされています。

グループ列

DOUBLE型とBIGINT型の列がサポートされています。 デフォルトでは、テーブル全体はグループです。

パラメーター設定

損失関数タイプ

損失関数のタイプ。 有効値: Gbrank LossLambdamart DCG LossLambdamart NDCG Loss、および回帰Loss

gbrank損失のタウ

このパラメーターは、Loss Function TypeパラメーターがGbrank Lossに設定されている場合にのみ必要です。 有効な値: [0,1]

Gbrankと回帰損失の指数ベース

このパラメーターは、Loss Function TypeパラメーターがGbrank LossまたはRegression Lossに設定されている場合にのみ必要です。 有効な値: [1,10]

メトリックタイプ

メトリックタイプ。 有効な値: NDCGおよびDCG

決定木の数

木の数。 有効な値: 1 ~ 10000

学習率

学習率。 有効値: (0,1)

最大リーフ数量

各ツリーのリーフノードの最大数。 有効な値: 1 ~ 1000

最大決定ツリーの深さ

各ツリーの最大深さ。 設定可能な値は 1~100 です。

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

各リーフノードの最小サンプル数。 有効な値: 1 ~ 1000

サンプル比

トレーニングのために選択されたサンプルの割合。 有効値: (0,1)

特徴の比率

トレーニングのために選択された特徴の割合。 有効値: (0,1)

サンプル比

テスト用に選択されたサンプルの割合。 有効な値: [0,1]

ランダムシード

ランダムシード。 有効な値: [0,10]

ニュートン-ラフソン法を使う

ニュートンのメソッドを使用するかどうかを指定します。

最大機能分割時間

各フィーチャの最大分割数。 有効な値: 1 ~ 1000

チューニング

コンピューティングコア数

コアの数。 システムは、入力データの量に基づいてコアを自動的に割り当てます。

コアあたりのメモリサイズ

各コアのメモリサイズ。 システムは、入力データの量に基づいてメモリを自動的に割り当てます。 単位:MB。

方法2: PAIコマンドを使用する

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

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

入力テーブルの名前。

N/A

featureColNames

不可

トレーニング用に入力テーブルから選択されたフィーチャ列。 DOUBLE型とBIGINT型の列がサポートされています。

数値データ型のすべての列

labelColName

入力テーブルのラベル列。 DOUBLE型とBIGINT型の列がサポートされています。

N/A

inputTablePartitions

不可

トレーニング用に入力テーブルから選択されたパーティション。 このパラメーターを次のいずれかの形式で指定します。

  • Partition_name=value

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

説明

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

すべてのパーティション

modelName

出力モデルの名前。

N/A

outputImportanceTableName

不可

機能の重要性を提供するテーブルの名前。

N/A

groupIDColName

不可

グループ列の名前。

フルテーブル

lossType

不可

損失関数のタイプ。 有効な値:

  • 0: GBRank

  • 1: LAMBDAMART_DCG

  • 2: LAMBDAMART_NDCG

  • 3: LEAST_SQUARE

0

metricType

不可

メトリックタイプ。 有効な値:

  • 0: 正規化割引累積ゲイン (NDCG) 。

  • 1: 割引累積ゲイン (DCG) 。

  • 2: 曲線下面積 (AUC) 。 このメトリックタイプは、labelの値が0または1に設定されている (非推奨) シナリオにのみ適しています。

0

treeCount

不可

木の数。 有効な値: 1 ~ 10000

500

収缩

不可

学習率。 有効値: (0,1)

0.05

maxLeafCount

不可

各ツリーのリーフノードの最大数。 有効な値: 1 ~ 1000

32

maxDepth

不可

各ツリーの最大深さ。 設定可能な値は 1~100 です。

10

minLeafSampleCount

不可

各リーフノードの最小サンプル数。 有効な値: 1 ~ 1000

500

sampleRatio

不可

トレーニングのために選択されたサンプルの割合。 有効値: (0,1)

0.6

featureRatio

不可

トレーニングのために選択された特徴の割合。 有効値: (0,1)

0.6

タウ

不可

GBRank損失関数のTauパラメーター。 有効な値: [0,1]

0.6

p

不可

GBRank損失関数のpパラメーター。 有効な値: [1,10]

1

randSeed

不可

ランダムシード。 有効な値: [0,10]

0

newtonStep

不可

ニュートンのメソッドを使用するかどうかを指定します。 有効な値: 0と1

1

featureSplitValueMaxSize

不可

各フィーチャの最大分割数。 有効な値: 1 ~ 1000

500

ライフサイクル

不可

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

N/A

例:

  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

    ラベル

    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コンポーネントに設定されたトレーニングパラメータを送信します。

    gbdt_ls_test_modelが存在する場合は、オフラインモデルをドロップし

    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コマンドを実行して、予測コンポーネントに設定されたパラメーターを送信します。

    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を表示します。

    ラベル

    prediction_result

    prediction_score

    予測_詳細

    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}