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

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

最終更新日:Apr 01, 2026

二項分類のためのロジスティック回帰は、ロジスティック回帰アルゴリズムを使用して二項分類器をトレーニングします。このコンポーネントは、密な入力データと疎な入力データの両方をサポートし、制限付きメモリBFGS (L-BFGS) オプティマイザーを使用します。

仕組み

トレーニングは次の3つのステージで実行されます。

  1. 特徴量処理 — アルゴリズムは、指定された特徴列 (DOUBLE型またはBIGINT型) と入力テーブルのラベル列を読み取ります。入力が疎形式の場合、コンポーネントは処理前にキーと値のペアを解析します。

  2. トレーニング — L-BFGSは損失関数を繰り返し最小化します。各反復でモデルの重みが更新されます。トレーニングは、2つの連続する反復間の対数尤度の改善が epsilon を下回るか、最大反復回数に達したときに停止します。

  3. 予測 — トレーニング済みモデルは、各行に予測されたクラスラベル (prediction_result)、信頼度スコア (prediction_score)、およびすべてのクラスにわたる確率分布 (prediction_detail) を割り当てます。

コンポーネントの構成

次のいずれかの方法を選択します。

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

ビジュアルモデリングでパイプライン構成タブを開き、コンポーネントパネルでパラメーターを設定します。

[フィールド設定]

パラメーター説明
トレーニング特徴列トレーニングに使用される入力テーブルの特徴列。DOUBLE型とBIGINT型をサポートします。最大2,000万 の特徴量。
ターゲット列入力テーブルのラベル列。
正のクラス値二項分類における正のクラスを表すラベル値。
[疎形式を使用]入力データが疎形式の場合は有効にします。

[パラメーター設定]

パラメーター説明デフォルト値
正則化の種類トレーニング中に適用する正則化。有効な値: なしL1L2。詳細については、「正則化の種類の選択」をご参照ください。
最大反復回数L-BFGS の最大反復回数。100
正則化係数正則化の強さ。ただし、正則化の種類なし の場合は効果がありません。
最小収束逸脱度収束しきい値(epsilon)。2 回の反復間における対数尤度の改善値がこの値を下回ると、トレーニングが終了します。0.000001

チューニング

パラメーター説明
コア数システムにより自動的に設定されます。
コアあたりのメモリサイズシステムにより自動的に設定されます。

方法2: PAIコマンドを使用した構成

SQLスクリプト コンポーネントを介して、次のPAIコマンドを実行します。

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入力テーブルの名前。
labelColName入力テーブルのラベル列。
modelName出力オフラインモデルの名前。

オプションパラメーター

パラメーター説明デフォルト
featureColNamesトレーニングに使用される特徴列。最大2,000万 の特徴量。すべての数値列
inputTablePartitions入力テーブルから使用するパーティション。形式: partition_name=value または name1=value1/name2=value2。複数のパーティションはコンマで区切ります。テーブル全体
regularizedType正則化タイプ。有効な値: l1l2Nonel1
regularizedLevel正則化係数。regularizedTypeNone の場合、効果はありません。1.0
maxIterL-BFGSの最大反復回数。100
epsilon収束しきい値。2つの反復間の対数尤度の改善がこの値を下回ると、トレーニングは停止します。1.0e-06
goodValue正のクラスに対応するラベル値。指定しない場合、ランダムに割り当てられます。
enableSparse入力データが疎形式であるかどうか。有効な値: truefalsefalse
itemDelimiter疎入力におけるキーと値のペア間のデリミタ。, (コンマ)
kvDelimiter疎入力におけるキーと値間のデリミタ。: (コロン)
coreNumコア数。自動的に割り当てられます
memSizePerCoreコアあたりのメモリサイズ (MB単位)。自動的に割り当てられます

正則化タイプの選択

正則化タイプ使用する状況効果
L1 (デフォルト)多くの無関係な特徴量を持つ高次元データ無関係な特徴量の係数をゼロに近づけ、疎なモデルを生成します
L2ほとんどの特徴量が関連しており、大きな係数を防ぎたい場合すべての係数をゼロに近づけますが、それらを排除しません
なし小規模なデータセット、または正則化されていないベースラインを理解したい場合正則化は適用されません。regularizedLevel は無視されます

疎データ形式

enableSparsetrue の場合、コンポーネントは各セルをキーと値の文字列として読み取ります。キーはゼロベースのインデックスです。値は数値である必要があります。数値以外のキー値はエラーを引き起こします。

  • itemDelimiter はセル内のキーと値のペアを区切ります。

  • kvDelimiter はキーとその値を区切ります。

デフォルトのデリミタ (, および :) を使用した入力例:

key_value
1:100,4:200,5:300
1:10,2:20,3:30

この例では、密なデータセットを使用したトレーニングから予測までの完全なワークフローを説明します。

ステップ1: トレーニングテーブルの作成

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), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(1 AS BIGINT)
    UNION ALL
    SELECT CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
    UNION ALL
    SELECT CAST(0 AS DOUBLE), CAST(1 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS DOUBLE), CAST(0 AS BIGINT)
) a;

結果のテーブル lr_test_input:

f0f1f2f3label
1.00.00.00.00
0.00.01.00.01
0.00.00.01.01
0.01.00.00.00
1.00.00.00.00
0.01.00.00.00

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

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: 予測の実行

予測コンポーネントのパラメーターの詳細については、「予測」をご参照ください。

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 には以下が含まれます。

labelprediction_resultprediction_scoreprediction_detail
000.9999998793434426{"0": 0.9999998793434426, "1": 1.206565574533681e-07}
110.999999799574135{"0": 2.004258650156743e-07, "1": 0.999999799574135}
110.999999799574135{"0": 2.004258650156743e-07, "1": 0.999999799574135}
000.9999998793434426{"0": 0.9999998793434426, "1": 1.206565574533681e-07}
000.9999998793434426{"0": 0.9999998793434426, "1": 1.206565574533681e-07}
000.9999998793434426{"0": 0.9999998793434426, "1": 1.206565574533681e-07}

出力列:

  • prediction_result — 予測されたクラスラベル (0または1)

  • prediction_score — 予測されたクラスの確率

  • prediction_detail — すべてのクラスにわたる確率分布をJSONオブジェクトとして

すべての予測は真のラベルと一致し、信頼度スコアは0.9999を超えています。