線形回帰は、従属変数と複数の独立変数との間の線形関係を分析するために使用されるモデルである。 パラメータサーバ (PS) は、大規模なオンラインおよびオフラインのトレーニングタスクで使用されます。 PS線形回帰コンポーネントは、数千億のサンプルと数十億のフィーチャの大規模な線形トレーニングタスクをサポートできます。
コンポーネントパラメータ
次のいずれかの方法を使用して、Platform for AI (PAI) のPS線形回帰コンポーネントを設定できます。
方法1: PAIコンソールでコンポーネントを設定する
Machine Learning DesignerでPS線形回帰コンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | フィーチャー列 | トレーニング用に入力テーブルから選択されたフィーチャ列。 |
ラベル列 | DOUBLE型とBIGINT型の列がサポートされています。 | |
スパース形式の使用 | 入力データがスパース形式かどうかを指定します。 スパース形式の入力データは、キーと値のペアとして表示されます。 | |
KVペア区切り文字 | キーと値のペアを区切るために使用される区切り文字。 デフォルトでは、スペースが使用されます。 | |
KVデリミタ | 入力テーブルがスパーステーブルの場合、キーと値を区切るために使用される区切り文字。 デフォルトでは、コロン (:) が使用されます。 | |
パラメーター設定 | L1重量 | L1正則化係数。 値が大きいほど、モデルの非ゼロ要素が少ないことを指定します。 オーバーフィットが発生した場合は、パラメーター値を増やします。 |
L2ウェイト | L2正則化係数。 値が大きいほど、モデルパラメータの絶対値が小さいことを指定します。 オーバーフィットが発生した場合は、パラメーター値を増やします。 | |
最大イテレーション | アルゴリズムによって実行される最大反復回数。 このパラメーターを0に設定すると、反復回数は無制限です。 | |
最小収束偏差 | アルゴリズム終了の条件。 | |
最大機能ID | 最大のフィーチャIDまたはフィーチャディメンション。 このパラメーターの値は、実際の値よりも大きくすることができます。 このパラメーターを指定しないと、システムは自動的にSQLタスクを実行して、最大のフィーチャIDまたはフィーチャディメンションを計算します。 | |
チューニング | コア | コアの数。 デフォルトでは、システムが値を決定します。 |
コアあたりのメモリサイズ | 各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを使用してコンポーネントを構成する
PAIコマンドで使用されるパラメーターを次の表に示します。 SQLスクリプトコンポーネントを使用してPAIコマンドを実行できます。 詳細については、「SQLスクリプト」をご参照ください。
# Training
PAI -name ps_linearregression
-project algo_public
-DinputTableName="lm_test_input"
-DmodelName="linear_regression_model"
-DlabelColName="label"
-DfeatureColNames="features"
-Dl1Weight=1.0
-Dl2Weight=0.0
-DmaxIter=100
-Depsilon=1e-6
-DenableSparse=true
# Prediction
drop table if exists logistic_regression_predict;
PAI -name prediction
-DmodelName="linear_regression_model"
-DoutputTableName="linear_regression_predict"
-DinputTableName="lm_test_input"
-DappendColNames="label,features"
-DfeatureColNames="features"
-DenableSparse=true
パラメーター | 必須 | 説明 | デフォルト値 |
inputTableName | 可 | 入力テーブルの名前。 | N/A |
modelName | 可 | 出力モデルの名前。 | N/A |
outputTableName | 不可 | 出力モデル評価テーブルの名前。 このパラメーターは、enableFitGoodnessパラメーターをtrueに設定する場合に必要です。 | N/A |
labelColName | 可 | 入力テーブルから選択されたラベル列。 DOUBLE型とBIGINT型の列がサポートされています。 | N/A |
featureColNames | 可 | トレーニング用に入力テーブルから選択されたフィーチャ列。 入力テーブルのデータがdense形式の場合、DOUBLEタイプとBIGINTタイプの列がサポートされます。 入力テーブルのデータがスパース形式の場合、STRING型の列のみがサポートされます。 | N/A |
inputTablePartitions | 不可 | トレーニング用に入力テーブルから選択されたパーティション。 | N/A |
enableSparse | 不可 | 入力データがスパース形式かどうかを指定します。 有効な値: {true, false} 。 | false |
itemDelimiter | 不可 | キーと値のペアを区切るために使用される区切り文字。 このパラメーターは、enableSparseパラメーターをtrueに設定した場合にのみ有効です。 | Space |
kvDelimiter | 不可 | キーと値を区切るために使用される区切り文字。 このパラメーターは、enableSparseパラメーターをtrueに設定した場合にのみ有効です。 | Colons (:) |
enableModelIo | 不可 | モデルをオフラインモデルとして生成するかどうかを指定します。 enableModelIoパラメーターをfalseに設定した場合、モデルはMaxComputeテーブルに生成されます。 有効な値: trueとfalse。 | true |
maxIter | 不可 | アルゴリズムによって実行される最大反復回数。 このパラメーターの値は、負でない整数である必要があります。 | 100 |
イプシロン | 不可 | アルゴリズム終了の条件。 有効な値: [0,1] 。 | 0.000001 |
l1Weight | 不可 | L1正則化係数。 値が大きいほど、モデルの非ゼロ要素の数が少なくなります。 オーバーフィットが発生した場合は、パラメーター値を増やします。 | 1.0 |
l2Weight | 不可 | L2正則化係数。 値が大きいほど、モデルパラメータの絶対値が小さいことを指定します。 オーバーフィットが発生した場合は、パラメーター値を増やします。 | 0 |
modelSize | 不可 | 最大のフィーチャIDまたはフィーチャディメンション。 このパラメーターの値は、実際の値よりも大きくすることができます。 このパラメーターを指定しないと、システムは自動的にSQLタスクを実行して、最大のフィーチャIDまたはフィーチャディメンションを計算します。 このパラメーターの値は、負でない整数である必要があります。 | 0 |
coreNum | 不可 | コンピューティングで使用されるコアの数。 | システムによって指定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 | システムによって指定される |
例
次のSQL文を実行し、SQL Scriptコンポーネントを使用して入力データを生成します。 この例では、key − value形式の入力データが生成される。
drop table if exists lm_test_input; create table lm_test_input as select * from ( select cast(2 as BIGINT) as label, '1:0.55 2:-0.15 3:0.82 4:-0.99 5:0.17' as features union all select cast(1 as BIGINT) as label, '1:-1.26 2:1.36 3:-0.13 4:-2.82 5:-0.41' as features union all select cast(1 as BIGINT) as label, '1:-0.77 2:0.91 3:-0.23 4:-4.46 5:0.91' as features union all select cast(2 as BIGINT) as label, '1:0.86 2:-0.22 3:-0.46 4:0.08 5:-0.60' as features union all select cast(1 as BIGINT) as label, '1:-0.76 2:0.89 3:1.02 4:-0.78 5:-0.86' as features union all select cast(1 as BIGINT) as label, '1:2.22 2:-0.46 3:0.49 4:0.31 5:-1.84' as features union all select cast(0 as BIGINT) as label, '1:-1.21 2:0.09 3:0.23 4:2.04 5:0.30' as features union all select cast(1 as BIGINT) as label, '1:2.17 2:-0.45 3:-1.22 4:-0.48 5:-1.41' as features union all select cast(0 as BIGINT) as label, '1:-0.40 2:0.63 3:0.56 4:0.74 5:-1.44' as features union all select cast(1 as BIGINT) as label, '1:0.17 2:0.49 3:-1.50 4:-2.20 5:-0.35' as features ) tmp;
生成された入力データを次の図に示します。
説明入力データがkey-value形式の場合、特徴IDは正の整数で、特徴値は実数でなければなりません。 フィーチャIDのデータ型がSTRINGの場合、シリアル化コンポーネントを使用して入力データをシリアル化する必要があります。 フィーチャ値がカテゴリ文字列の場合、フィーチャの離散化を実行してフィーチャを処理する必要があります。
次の図に示すように、パイプラインを作成します。 詳細については、「アルゴリズムモデリング」をご参照ください。
コンポーネントパラメーターを設定します。
キャンバスで、[Read Table-1] コンポーネントをクリックします。 右側のウィンドウの [テーブルの選択] タブで、[テーブル名] をlm_test_inputに設定します。
PS線形回帰コンポーネントのパラメーターを設定します。 下表に、各パラメーターを説明します。 他のパラメーターにはデフォルト値を使用します。
タブ
パラメーター
説明
フィールド設定
スパース形式の使用
パラメーターをtrueに設定します。
フィーチャー列
[features] 列を選択します。
ラベル列
label列を選択します。
チューニング
コア
パラメーターを3に設定します。
コアあたりのメモリサイズ
パラメーターを1024に設定します。 単位:MB。
予測コンポーネントの次の表に示すパラメーターを設定します。 表に記載されていないパラメーターのデフォルト値を保持します。
タブ
パラメーター
説明
フィールド設定
フィーチャー列
[features] 列を選択します。
予約済み列
ラベル列と機能列を選択します。
スパース行列
[スパースマトリックス] を選択します。
KVデリミタ
値をコロン (:) に設定します。
KVペア区切り文字
このパラメーターは空のままにします。これは、スペースを区切り文字として使用することを指定します。
キャンバス上のアイコンをクリックしてパイプラインを実行します。
パイプラインの実行後、[予測-1] コンポーネントを右クリックし、
を選択します。