一般的なロジスティック回帰アルゴリズムは、バイナリ分類に使用されます。 バイナリ分類のロジスティック回帰コンポーネントは、スパース形式と密形式の両方をサポートします。
コンポーネントの設定
次のいずれかの方法を使用して、バイナリ分類のロジスティック回帰コンポーネントを設定できます。
方法1: Machine Learning Designerでコンポーネントを構成する
Machine Learning Platform for AI (PAI) コンソールのMachine Learning Designerの [パイプライン構成] タブでコンポーネントを構成します。 次の表に、コンポーネントのパラメーターを示します。
タブ | パラメーター | 説明 |
フィールド設定 | トレーニング機能列 | トレーニング用にデータソースから選択されたフィーチャ列。 DOUBLE型とBIGINT型の列がサポートされています。 説明 最大2,000万の機能がサポートされています。 |
ターゲット列 | 入力テーブルの対象列。 | |
正のクラス値 | N/A | |
スパース形式の使用 | 入力データがスパース形式かどうかを指定します。 | |
パラメーター設定 | 正則化タイプ | 正則化タイプ。 有効な値: None、L1、L2。 |
最大イテレーション | 反復の最大数。 デフォルト値: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 | 不可 | トレーニング用に入力テーブルから選択されたパーティション。 このパラメーターを次のいずれかの形式で指定します。
説明 複数のパーティションを指定する場合は、コンマ (,) で区切ります。 | フルテーブル |
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 | 不可 | 入力テーブルのデータがスパース形式の場合、keyとvalueを区切るために使用される区切り文字。 | コロン (:) |
coreNum | 不可 | コアの数。 | 自動割り当て |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 | 自動割り当て |
Machine Learning Designerでは、スパースデータはkey-value形式で表示されます。 以下の表は、特定の例を説明する。 itemDelimiterパラメーターは、キーと値のペアを区切るために使用される区切り文字を指定します。 kvDelimiterパラメーターは、keyとvaluesの区切りに使用される区切り文字を指定します。
key_value |
1:100,4:200,5:300 |
1:10,2:20,3:30 |
key-value形式の場合、インデックスを使用してkeyを0から示します。 keyの値を示すために文字が使用されている場合、システムはエラーを報告します。
例:
次の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
次の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";
次の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";
予測結果テーブル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}