全部產品
Search
文件中心

Platform For AI:PS線性迴歸

更新時間:Jul 13, 2024

線性迴歸(Linear Regression)是分析因變數和多個自變數之間的線性關聯式模式,參數伺服器PS(Parameter Server)致力於解決大規模的離線及線上訓練任務。PS線性迴歸支援千億樣本、十億特徵的大規模線性訓練任務。

組件配置

您可以使用以下任意一種方式,配置PS線性迴歸組件參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數

描述

欄位設定

選擇特徵列

輸入資料來源中,參與訓練的特徵列。

選擇標籤列

支援DOUBLE及BIGINT類型。

是否稀疏格式

使用KV格式表示稀疏格式。

kv間的分隔字元

預設使用空格分隔。

key與value分隔字元

預設使用半形冒號(:)分隔。

參數設定

L1 weight

L1正則化係數。該參數值越大,表示模型非零元素越少。如果過擬合,則增大該參數值。

L2 weight

L2正則化係數。該參數值越大,表示模型參數絕對值越小。如果過擬合,則增大該參數值。

最大迭代次數

演算法進行的最大迭代次數。如果最大迭代次數0,則演算法迭代次數無限制。

最小收斂誤差

最佳化演算法終止條件。

最大特徵ID

最大的特徵ID或特徵維度,該參數取值可以大於實際值。如果未配置該參數,則系統啟動SQL任務自動計算。

執行調優

核心數

預設為系統自動分配。

每個核的記憶體大小

預設為系統自動分配。

方式二:PAI命令方式

使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼

#訓練。
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
#預測。
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

輸入表的名稱。

modelName

輸出模型的名稱。

outputTableName

輸出的模型評估表名稱。如果enableFitGoodnesstrue,則該參數必選。

labelColName

輸入表的標籤列名,支援DOUBLE及BIGINT類型。

featureColNames

輸入表中,用於訓練的特徵列名。如果輸入資料為稠密格式,則支援DOUBLE及BIGINT類型。如果輸入資料為稀疏格式,則支援STRING類型。

inputTablePartitions

輸入表的分區。

enableSparse

輸入資料是否為稀疏格式,取值範圍為{true,false}

false

itemDelimiter

KV對之間的分隔字元。如果enableSparsetrue,則該參數生效。

空格

kvDelimiter

keyvalue之間的分隔字元。如果enableSparsetrue,則該參數生效。

半形冒號(:)

enableModelIo

是否輸出到Offline Model。如果enableModelIofalse,則將模型輸出到MaxCompute表。取值範圍為{true,false}

true

maxIter

演算法進行的最大迭代次數,取值範圍為非負整數。

100

epsilon

最佳化演算法終止條件,取值範圍為[0,1]

0.000001

l1Weight

L1正則化係數。該參數值越大,模型非零元素越少。如果過擬合,則增大該參數值。

1.0

l2Weight

L2正則化係數。該參數值越大,模型參數絕對值越小。如果過擬合,則增大該參數值。

0

modelSize

最大的特徵ID或特徵維度,該參數取值可以大於實際值。如果未配置該參數,則系統啟動SQL任務自動計算。取值範圍為非負整數。

0

coreNum

計算的核心數量。

系統自動分配

memSizePerCore

每個核心的記憶體,單位為MB。

系統自動分配

樣本

  1. 使用SQL指令碼執行如下SQL語句,產生輸入資料(以KV格式資料為例)。

    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

    說明

    KV格式資料的特徵ID必須為正整數,特徵值必須為實數。如果特徵ID為字串,則需要進行序列化操作。如果特徵值為類型字串,則需要進行特徵離散化操作。

  2. 構建如下工作流程,詳情請參見演算法建模image

  3. 配置組件參數。

    1. 單擊讀資料表-1組件,在右側表選擇頁簽中,配置表名為lm_test_input。

    2. 配置PS線性迴歸組件的參數(配置如下表格中的參數,其餘參數使用預設值)。

      頁簽

      參數

      描述

      欄位設定

      是否稀疏格式

      選擇true

      選擇特徵列

      選擇features列。

      選擇標籤列

      選擇label列。

      執行調優

      核心數

      配置為3

      每個核的記憶體大小

      配置為1024 MB。

    3. 配置預測組件的參數(配置如下表格中的參數,其餘參數使用預設值)。

      頁簽

      參數

      描述

      欄位設定

      特徵列

      選擇features列。

      原樣輸出資料行

      選擇label列和features列。

      疏鬆陣列

      選中疏鬆陣列複選框。

      key與value分隔字元

      配置為半形冒號(:)。

      kv對間的分隔字元

      使用空格作為分隔字元,留空即可。

  4. 單擊畫布中的運行按鈕image,運行工作流程。

  5. 工作流程運行成功後,按右鍵預測-1組件,在捷徑功能表中,選擇查看資料 > 預測結果輸出PS線性迴歸預測結果