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

Platform For AI:バイナリ分類のロジスティック回帰

最終更新日:Jul 22, 2024

一般的なロジスティック回帰アルゴリズムは、バイナリ分類に使用されます。 バイナリ分類のロジスティック回帰コンポーネントは、スパース形式と密形式の両方をサポートします。

コンポーネントの設定

次のいずれかの方法を使用して、バイナリ分類のロジスティック回帰コンポーネントを設定できます。

方法1: Machine Learning Designerでコンポーネントを構成する

Machine Learning Platform for AI (PAI) コンソールのMachine Learning Designerの [パイプライン構成] タブでコンポーネントを構成します。 次の表に、コンポーネントのパラメーターを示します。

タブ

パラメーター

説明

フィールド設定

トレーニング機能列

トレーニング用にデータソースから選択されたフィーチャ列。 DOUBLE型とBIGINT型の列がサポートされています。

説明

最大2,000万の機能がサポートされています。

ターゲット列

入力テーブルの対象列。

正のクラス値

N/A

スパース形式の使用

入力データがスパース形式かどうかを指定します。

パラメーター設定

正則化タイプ

正則化タイプ。 有効な値: NoneL1L2

最大イテレーション

反復の最大数。 デフォルト値:100

正則化係数

正則化タイプ[なし] に設定されている場合、このパラメーターは無効です。

最小収束偏差

最小収束偏差。 デフォルト値: 0.000001

チューニング

コア

システムは自動的に値を設定します。

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

システムは自動的に値を設定します。

方法2: PAIコマンドによるコンポーネントの設定

PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを実行できます。 詳細については、「SQLスクリプト」をご参照ください。 コマンドのパラメーターを次の表に示します。

PAI -name logisticregression_binary
    -project algo_public
    -DmodelName="xlab_m_logistic_regression_6096"
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="l1"
    -Depsilon="0.000001"
    -DlabelColName="y"
    -DfeatureColNames="pdays,emp_var_rate"
    -DgoodValue="1"
    -DinputTableName="bank_data"

パラメーター

必須

説明

デフォルト値

inputTableName

入力テーブルの名前。

N/A

featureColNames

不可

トレーニング用に入力テーブルから選択されたフィーチャ列。

説明

最大2,000万の機能がサポートされています。

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

labelColName

入力テーブルから選択されたラベル列。

N/A

inputTablePartitions

不可

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

  • partition_name=value

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

説明

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

フルテーブル

modelName

出力モデルの名前。

N/A

regularizedType

不可

正則化タイプ。 有効な値: l1、l2、およびNone

l1

regularizedLevel

不可

正則化係数。 regularizedTypeパラメーターがNoneに設定されている場合、このパラメーターは無効です。

1.0

maxIter

不可

制限メモリBFGS (L-BFGS) アルゴリズムの最大反復回数。

100

イプシロン

不可

収束エラー。 このパラメーターは、L-BFGSアルゴリズムの反復を終了する条件を示します。 2つの反復間の対数尤度がこの値より小さい場合、反復は終了する。

1.0e-06

goodValue

不可

客観的な参照値。 このパラメーターは、バイナリ分類のトレーニング係数に対応するlabelの値を指定します。 このパラメーターが指定されていない場合、システムは値をランダムに割り当てます。

N/A

enableSparse

不可

入力データがスパースかどうかを指定します。 有効な値: {true, false}

false

itemDelimiter

不可

入力テーブルのデータがスパース形式の場合、キーと値のペアを区切るために使用される区切り文字。

コンマ (,)

kvDelimiter

不可

入力テーブルのデータがスパース形式の場合、keyvalueを区切るために使用される区切り文字。

コロン (:)

coreNum

不可

コアの数。

自動割り当て

memSizePerCore

不可

各コアのメモリサイズ。 単位:MB。

自動割り当て

Machine Learning Designerでは、スパースデータはkey-value形式で表示されます。 以下の表は、特定の例を説明する。 itemDelimiterパラメーターは、キーと値のペアを区切るために使用される区切り文字を指定します。 kvDelimiterパラメーターは、keyvaluesの区切りに使用される区切り文字を指定します。

key_value

1:100,4:200,5:300

1:10,2:20,3:30

説明

key-value形式の場合、インデックスを使用してkeyを0から示します。 keyの値を示すために文字が使用されている場合、システムはエラーを報告します。

例:

  1. 次のSQL文を実行してトレーニングデータを生成します。

    drop table if exists lr_test_input;
    create table lr_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;

    次のトレーニングデータテーブルlr_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コマンドを実行して、バイナリ分類のロジスティック回帰コンポーネント用に設定されたトレーニングパラメータを送信します。

    lr_test_modelが存在する場合は、

    drop offlinemodel if exists lr_test_model;
    PAI -name logisticregression_binary
        -project algo_public
        -DmodelName="lr_test_model"
        -DitemDelimiter=","
        -DregularizedLevel="1"
        -DmaxIter="100"
        -DregularizedType="None"
        -Depsilon="0.000001"
        -DkvDelimiter=":"
        -DlabelColName="label"
        -DfeatureColNames="f0,f1,f2,f3"
        -DenableSparse="false"
        -DgoodValue="1"
        -DinputTableName="lr_test_input";
  3. 次のPAIコマンドを実行して、予測コンポーネントに設定されたパラメーターを送信します。パラメーターの詳細については、「予測」をご参照ください。

    drop table if exists lr_test_prediction_result;
    PAI -name prediction
        -project algo_public
        -DdetailColName="prediction_detail"
        -DmodelName="lr_test_model"
        -DitemDelimiter=","
        -DresultColName="prediction_result"
        -Dlifecycle="28"
        -DoutputTableName="lr_test_prediction_result"
        -DscoreColName="prediction_score"
        -DkvDelimiter=":"
        -DinputTableName="lr_test_input"
        -DenableSparse="false"
        -DappendColNames="label";
  4. 予測結果テーブルlr_test_prediction_resultが生成されます。

    ラベル

    prediction_result

    prediction_score

    予測_詳細

    0

    0

    0.9999998793434426

    {"0": 0.9999998793434426, "1": 1.206565574533681e-07}

    1

    1

    0.999999799574135

    {"0": 2.004258650156743e-07, "1": 0.999999799574135}

    1

    1

    0.999999799574135

    {"0": 2.004258650156743e-07, "1": 0.999999799574135}

    0

    0

    0.9999998793434426

    {"0": 0.9999998793434426, "1": 1.206565574533681e-07}

    0

    0

    0.9999998793434426

    {"0": 0.9999998793434426, "1": 1.206565574533681e-07}

    0

    0

    0.9999998793434426

    {"0": 0.9999998793434426, "1": 1.206565574533681e-07}