全部產品
Search
文件中心

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

更新時間:Jul 13, 2024

經典羅吉斯迴歸是一個二分類演算法,支援稀疏及稠密資料格式。

組件配置

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

方式一:可視化方式

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

頁簽

參數

描述

欄位設定

訓練特徵列

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

說明

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

目標列

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

正類值

無。

是否稀疏資料

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

參數設定

正則項

支援NoneL1L2類型。

最大迭代次數

預設值為100。

正則係數

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

最小收斂誤差

預設值為0.000001。

執行調優

核心數目

系統自動分配。

每個核記憶體數

系統自動分配。

方式二:PAI命令方式

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

PAI -name logisticregression_binary
    -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

goodValue

目標基準值。二分類時,指定訓練係數針對的 label值。如果為空白,則系統隨機分配。

enableSparse

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

false

itemDelimiter

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

英文逗號(,)

kvDelimiter

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

英文冒號(:)

coreNum

核心數量。

系統自動分配

memSizePerCore

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

系統自動分配

PAI使用KV格式表示稀疏資料,如下表所示。其中itemDelimiter表示KV對之間的分隔字元,kvDelimiter表示keyvalue之間的分隔字元。

key_value

1:100,4:200,5:300

1:10,2:20,3:30

說明

KV格式使用索引(從0開始)表示key。如果使用字元表示key,則系統報錯。

樣本

  1. 使用SQL語句,產生訓練資料。

    drop table if exists lr_test_input;
    create table 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(1 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
        union all
            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
    ) a;

    產生的訓練資料表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

    1

    0.0

    0.0

    0.0

    1.0

    1

    0.0

    1.0

    0.0

    0.0

    0

    1.0

    0.0

    0.0

    0.0

    0

    0.0

    1.0

    0.0

    0.0

    0

  2. 使用PAI命令,提交羅吉斯迴歸二分類組件的訓練參數。

    drop offlinemodel if exists lr_test_model;
    PAI -name logisticregression_binary
        -project algo_public
        -DmodelName="lr_test_model"
        -DitemDelimiter=","
        -DregularizedLevel="1"
        -DmaxIter="100"
        -DregularizedType="None"
        -Depsilon="0.000001"
        -DkvDelimiter=":"
        -DlabelColName="label"
        -DfeatureColNames="f0,f1,f2,f3"
        -DenableSparse="false"
        -DgoodValue="1"
        -DinputTableName="lr_test_input";
  3. 使用PAI命令,提交預測組件參數。更多參數說明,請參見預測

    drop table if exists lr_test_prediction_result;
    PAI -name prediction
        -project algo_public
        -DdetailColName="prediction_detail"
        -DmodelName="lr_test_model"
        -DitemDelimiter=","
        -DresultColName="prediction_result"
        -Dlifecycle="28"
        -DoutputTableName="lr_test_prediction_result"
        -DscoreColName="prediction_score"
        -DkvDelimiter=":"
        -DinputTableName="lr_test_input"
        -DenableSparse="false"
        -DappendColNames="label";
  4. 查看預測結果表lr_test_prediction_result

    label

    prediction_result

    prediction_score

    prediction_detail

    0

    0

    0.9999998793434426

    {“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}

    1

    1

    0.999999799574135

    {“0”: 2.004258650156743e-07, “1”: 0.999999799574135}

    1

    1

    0.999999799574135

    {“0”: 2.004258650156743e-07, “1”: 0.999999799574135}

    0

    0

    0.9999998793434426

    {“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}

    0

    0

    0.9999998793434426

    {“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}

    0

    0

    0.9999998793434426

    {“0”: 0.9999998793434426, “1”: 1.206565574533681e-07}