全部產品
Search
文件中心

Platform For AI:羅吉斯迴歸多分類

更新時間:Jul 13, 2024

經典羅吉斯迴歸是一個二分類演算法,PAI提供的羅吉斯迴歸可以支援多分類,且支援稀疏及稠密資料格式。

組件配置

您可以使用以下任意一種方式,配置羅吉斯迴歸多分類組件參數。

方式一:可視化方式

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

頁簽

參數

描述

欄位設定

訓練特徵列

輸入資料來源中,用於訓練的特徵列。支援DOUBLE及BIGINT類型。

說明

特徵數量不能超過兩千萬。

目標列

輸入資料來源中,目標列名稱。

是否稀疏資料

輸入資料是否為稀疏格式。

參數設定

正則項類型

支援L1L2None類型。

最大迭代次數

預設值為100。

正則係數

如果 正則項None,則該參數失效。

最小收斂誤差

預設值為0.000001。

方式二: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

輸入表的表名。

featureColNames

輸入表中,用於訓練的特徵列名。

說明

特徵數量不能超過兩千萬。

所有數值列

labelColName

輸入表的標籤列名。

inputTablePartitions

輸入表中,參與訓練的分區。系統支援的格式包括:

  • partition_name=value

  • name1=value1/name2=value2:多級分區

說明

指定多個分區時,分區間使用英文逗號(,)分隔。

全表

modelName

輸出的模型名。

regularizedType

正則化類型,取值範圍為{'l1','l2','None'}

l1

regularizedLevel

正則化係數。如果 regularizedTypeNone,則該參數失效。

1.0

maxIter

L-BFGS的最大迭代次數。

100

epsilon

收斂誤差。該參數是L-BFGS演算法的終止條件,即兩次迭代的log-likelihood之差小於該值,迭代終止。

1.0e-06

enableSparse

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

false

itemDelimiter

輸入表資料為稀疏格式時,KV對之間的分隔字元。

英文逗號(,)

kvDelimiter

輸入表資料為稀疏格式時,keyvalue之間的分隔字元。

英文冒號(:)

coreNum

核心數量。

系統自動分配

memSizePerCore

單個核心使用的記憶體數,單位為MB。

系統自動分配

樣本

  1. 使用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

    label

    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

  2. 使用PAI命令,提交羅吉斯迴歸多分類演算法組件參數。

    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";
  3. 使用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";
  4. 查看輸出結果(multi_lr_test_prediction_result表)。

    label

    prediction_result

    prediction_score

    prediction_detail

    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}