经典逻辑回归是一个二分类算法,PAI提供的逻辑回归可以支持多分类,且支持稀疏及稠密数据格式。

组件配置

PAI-Studio支持通过可视化或PAI命令的方式,配置该组件参数:
  • 可视化方式
    页签 参数 描述
    字段设置 训练特征列 输入数据源中,用于训练的特征列。支持DOUBLE及BIGINT类型。
    说明 特征数量不能超过两千万。
    目标列 输入数据源中,目标列名称。
    是否稀疏数据 输入数据是否为稀疏格式。
    参数设置 正则项类型 支持L1L2None类型。
    最大迭代次数 默认值为100。
    正则系数 如果 正则项None,则该参数失效。
    最小收敛误差 默认值为0.000001。
  • PAI命令方式
    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
        from dual
        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
        from dual
        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
        from dual
        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
        from dual
    ) 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}