一般的なロジスティック回帰アルゴリズムは、バイナリ分類に使用されます。 Machine Learning Platform for AI (PAI) では、マルチクラス分類にロジスティック回帰アルゴリズムを使用できます。 マルチクラス分類のロジスティック回帰コンポーネントは、スパースデータ形式と密データ形式の両方をサポートします。
コンポーネントの設定
次のいずれかの方法を使用して、マルチクラス分類コンポーネントのロジスティック回帰を設定できます。
方法1: パイプラインページでコンポーネントを設定する
Machine Learning Platform for AI (PAI) のMachine Learning Designerのパイプラインページで、マルチクラス分類コンポーネントのロジスティック回帰のパラメーターを設定できます。 Machine Learning Designerは、以前はMachine Learning Studioとして知られていました。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | トレーニング機能列 | トレーニング用にデータソースから選択されたフィーチャ列。 DOUBLE型とBIGINT型の列がサポートされています。 説明 最大2,000万の機能がサポートされています。 |
ターゲット列 | 入力テーブルの対象列。 | |
スパース形式 | 入力データがスパース形式かどうかを指定します。 | |
パラメーター設定 | 正則化タイプ | 有効な値: L1、L2、およびNone。 |
最大イテレーション数 | 反復の最大数。 デフォルト値:100 | |
正則化係数 | 正則化タイプパラメーターが [なし] に設定されている場合、このパラメーターは無効です。 | |
最小収束偏差 | 最小収束偏差。 デフォルト値: 0.000001 |
方法2: PAIコマンドを使用する
PAIコマンドを使用してコンポーネントパラメータを設定します。 SQLスクリプトコンポーネントを使用してPAIコマンドを呼び出すことができます。 詳細については、「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 | 可 | 入力テーブルの名前。 | 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つの反復間の対数尤度の差がこのパラメータで指定された値より小さい場合、L-BFGSアルゴリズムの反復は終了する。 | 1.0e-06 |
enableSparse | 不可 | 入力データがスパース形式かどうかを指定します。 有効な値: trueとfalse。 | false |
itemDelimiter | 不可 | 入力データのデータがスパース形式の場合にキーと値のペアを区切るために使用される区切り文字。 | , |
kvDelimiter | 不可 | 入力テーブルのデータがスパース形式の場合にkeyとvalueを区切るために使用される区切り文字。 | : |
coreNum | 不可 | コアの数。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 | システムによって決定される |
例:
次のSQL文を実行してトレーニングデータを生成します。
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;
次の表は、multi_lr_test_inputテーブルで生成されたトレーニングデータを示しています。
f0
f1
f2
f3
ラベル
1.0
0.0
0.0
0.0
0
0.0
0.0
1.0
0.0
2
0.0
0.0
0.0
1.0
1
0.0
1.0
0.0
0.0
0
次の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";
次のPAIコマンドを実行して、予測コンポーネントのパラメーターを送信します。
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";
multi_lr_test_prediction_resultテーブルを表示します。
ラベル
prediction_result
prediction_score
予測_詳細
0
0
0.9999997274902165
{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
0
0
0.9999997274902165
{"0": 0.9999997274902165, "1": 2.324679066261573e-07, "2": 2.324679066261569e-07}
2
2
0.9999999155958832
{"0": 2.018833979850994e-07, "1": 2.324679066261573e-07, "2": 0.9999999155958832}
1
1
0.9999999155958832
{"0": 2.018833979850994e-07、"1": 0.9999999155958832、"2": 2.324679066261569e-07}