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

Platform For AI:多クラス分類のためのロジスティック回帰

最終更新日:Apr 02, 2026

標準的なロジスティック回帰は二項分類を扱います。Platform for AI (PAI) の「多クラス分類のためのロジスティック回帰」コンポーネントは、L-BFGS 最適化アルゴリズムを用いて多クラス分類をサポートするように拡張されています。このコンポーネントは、スパース形式および密形式の両方の入力データ形式を受け付けます。

コンポーネントの構成

構成方法は 2 種類あります。ビジュアルモデリングを使用して、コード不要の視覚的設定を行います。また、PAI コマンドを使用して、スクリプトまたはパイプラインによる自動化されたワークフローを実行します。

方法 1:ビジュアルモデリングでの設定

ビジュアルモデリング(旧称:Machine Learning Studio)で「多クラス分類のためのロジスティック回帰」コンポーネントを開き、以下のパラメーターを設定します。

フィールド設定タブ

パラメーター説明
トレーニング特徴列入力テーブルからトレーニングに使用する特徴列を選択します。DOUBLE および BIGINT データの型をサポートします。最大 2,000 万個の特徴量をサポートします。
対象列入力テーブルの列をラベル付けします。
スパース形式入力データがスパース形式であるかどうかを指定します。

パラメーター設定タブ

パラメーター説明
正則化タイプトレーニング中にモデルに適用されるペナルティです。有効な値: L1L2、および なし
最大反復回数L-BFGS アルゴリズムの最大反復回数です。デフォルト値:100
正則化係数正則化ペナルティの強さです。正則化タイプなし に設定した場合は適用されません。
最小収束逸脱度L-BFGS アルゴリズムの収束しきい値です。連続する反復間の対数尤度の差がこの値を下回ると、トレーニングが終了します。デフォルト値:0.000001

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

PAI コマンドを用いて、logisticregression_multi アルゴリズムに直接パラメーターを渡します。PAI コマンドは SQL スクリプトコンポーネント経由で実行します。詳細については、「SQL スクリプト」をご参照ください。

以下の例はコマンド構文を示しています:

PAI -name logisticregression_multi
    -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はい入力テーブルの名前です。
featureColNamesいいえすべての数値列入力テーブルからトレーニングに使用する特徴列を選択します。最大 2,000 万個の特徴量をサポートします。
labelColNameはいラベル列の名前です。
inputTablePartitionsいいえ全テーブル入力テーブルから選択するパーティションです。単一パーティションには partition_name=value を、複数レベルのパーティションには name1=value1/name2=value2 を使用します。複数のパーティションを指定する場合は、カンマ (,) で区切ります。
modelNameはい出力モデルの名前です。
regularizedTypeいいえl1正則化タイプです。有効な値: l1l2、および None
regularizedLevelいいえ1.0正則化係数です。regularizedTypeNone の場合、適用されません。
maxIterいいえ100L-BFGS アルゴリズムの最大反復回数です。
epsilonいいえ1.0e-06L-BFGS アルゴリズムの収束しきい値です。連続する反復間の対数尤度の差がこの値より小さくなると、トレーニングが終了します。
enableSparseいいえfalse入力データがスパース形式であるかどうかを指定します。有効な値: true および false
itemDelimiterいいえ,スパース形式の入力におけるキーと値のペア間の区切り文字です。
kvDelimiterいいえ:スパース形式の入力におけるキーと値の間の区切り文字です。
coreNumいいえシステムデフォルトコア数です。
memSizePerCoreいいえシステムデフォルト1 コアあたりに割り当てるメモリ量(MB)です。

サンプル

このサンプルでは、4 つの特徴量を持つデータセットを用いて多クラスロジスティック回帰モデルをトレーニングし、予測を実行します。すべてのコマンドは SQL スクリプトコンポーネント経由で実行されます。

ステップ 1:トレーニングデータの作成

以下の SQL ステートメントを実行して、multi_lr_test_input テーブルを作成します:

drop table if exists multi_lr_test_input;
create table multi_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(2 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
) a;

このテーブルには、4 つの DOUBLE 型の特徴列(f0f3)と 1 つの BIGINT 型のラベル列が含まれます:

f0f1f2f3label
1.00.00.00.00
0.00.01.00.02
0.00.00.01.01
0.01.00.00.00

ステップ 2:モデルのトレーニング

以下の PAI コマンドを実行してモデルをトレーニングし、multi_lr_test_model として保存します:

drop offlinemodel if exists multi_lr_test_model;
PAI -name logisticregression_multi
    -project algo_public
    -DmodelName="multi_lr_test_model"
    -DitemDelimiter=","
    -DregularizedLevel="1"
    -DmaxIter="100"
    -DregularizedType="None"
    -Depsilon="0.000001"
    -DkvDelimiter=":"
    -DlabelColName="label"
    -DfeatureColNames="f0,f1,f2,f3"
    -DenableSparse="false"
    -DinputTableName="multi_lr_test_input";

ステップ 3:予測の実行

以下の PAI コマンドを実行して予測を生成し、結果を multi_lr_test_prediction_result テーブルに書き込みます:

drop table if exists multi_lr_test_prediction_result;
PAI -name prediction
    -project algo_public
    -DdetailColName="prediction_detail"
    -DmodelName="multi_lr_test_model"
    -DitemDelimiter=","
    -DresultColName="prediction_result"
    -Dlifecycle="28"
    -DoutputTableName="multi_lr_test_prediction_result"
    -DscoreColName="prediction_score"
    -DkvDelimiter=":"
    -DinputTableName="multi_lr_test_input"
    -DenableSparse="false"
    -DappendColNames="label";

ステップ 4:結果の確認

multi_lr_test_prediction_result テーブルをクエリして、予測結果を確認します:

labelprediction_resultprediction_scoreprediction_detail
000.9999997274902165{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
000.9999997274902165{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
220.9999999155958832{"0": 2.018833979850994e-07, "1": 2.324679066261573e-07, "2": 0.9999999155958832}
110.9999999155958832{"0": 2.018833979850994e-07, "1": 0.9999999155958832, "2": 2.324679066261569e-07}

出力列には以下の情報が含まれます:

  • prediction_result:予測されたクラスラベルです。

  • prediction_score:予測されたクラスに割り当てられた確率です。

  • prediction_detail:各クラスラベルをその予測確率にマッピングした JSON オブジェクトです。各キーはクラスラベル、各値はそのクラスに対するモデルの信頼度です。たとえば、{"0": 0.999..., "1": 2.32e-07, "2": 2.32e-07} は、モデルがクラス 0 にほぼ確実な判断を下し、クラス 1 および 2 にはほぼゼロの確率を割り当てていることを示します。