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

Platform For AI:PSリニア回帰

最終更新日:Jul 22, 2024

線形回帰は、従属変数と複数の独立変数との間の線形関係を分析するために使用されるモデルである。 パラメータサーバ (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。

システムによって指定される

  1. 次の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;

    生成された入力データを次の図に示します。11

    説明

    入力データがkey-value形式の場合、特徴IDは正の整数で、特徴値は実数でなければなりません。 フィーチャIDのデータ型がSTRINGの場合、シリアル化コンポーネントを使用して入力データをシリアル化する必要があります。 フィーチャ値がカテゴリ文字列の場合、フィーチャの離散化を実行してフィーチャを処理する必要があります。

  2. 次の図に示すように、パイプラインを作成します。 詳細については、「アルゴリズムモデリング」をご参照ください。 image

  3. コンポーネントパラメーターを設定します。

    1. キャンバスで、[Read Table-1] コンポーネントをクリックします。 右側のウィンドウの [テーブルの選択] タブで、[テーブル名] をlm_test_inputに設定します。

    2. PS線形回帰コンポーネントのパラメーターを設定します。 下表に、各パラメーターを説明します。 他のパラメーターにはデフォルト値を使用します。

      タブ

      パラメーター

      説明

      フィールド設定

      スパース形式の使用

      パラメーターをtrueに設定します。

      フィーチャー列

      [features] 列を選択します。

      ラベル列

      label列を選択します。

      チューニング

      コア

      パラメーターを3に設定します。

      コアあたりのメモリサイズ

      パラメーターを1024に設定します。 単位:MB。

    3. 予測コンポーネントの次の表に示すパラメーターを設定します。 表に記載されていないパラメーターのデフォルト値を保持します。

      タブ

      パラメーター

      説明

      フィールド設定

      フィーチャー列

      [features] 列を選択します。

      予約済み列

      ラベル列と機能列を選択します。

      スパース行列

      [スパースマトリックス] を選択します。

      KVデリミタ

      値をコロン (:) に設定します。

      KVペア区切り文字

      このパラメーターは空のままにします。これは、スペースを区切り文字として使用することを指定します。

  4. キャンバス上のimageアイコンをクリックしてパイプラインを実行します。

  5. パイプラインの実行後、[予測-1] コンポーネントを右クリックし、[データの表示] > [予測結果出力ポート] を選択します。 PS线性回归预测结果