PS线性回归

更新时间:2025-04-01 03:20:42

PS线性回归是一种结合了线性回归模型和参数服务器(Parameter Server)架构的机器学习算法。它旨在处理因变量和多个自变量之间的线性关系,特别适用于大规模数据集的训练任务,支持处理千亿样本和十亿特征的数据量。通过参数服务器架构,PS线性回归能够有效地分布式计算和存储模型参数,从而提升训练效率和可扩展性。

配置组件

方式一:可视化方式

Designer工作流页面添加PS线性回归组件,并在界面右侧配置相关参数:

参数类型

参数

描述

参数类型

参数

描述

字段设置

选择特征列

输入数据源中,参与训练的特征列。

选择标签列

支持DOUBLEBIGINT类型。

是否稀疏格式

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

kv间的分隔符

默认使用空格分隔。

keyvalue分隔符

默认使用半角冒号(:)分隔。

参数设置

L1 weight

L1正则化系数。该参数值越大,表示模型非零元素越少。如果过拟合,则增大该参数值。

L2 weight

L2正则化系数。该参数值越大,表示模型参数绝对值越小。如果过拟合,则增大该参数值。

最大迭代次数

算法进行的最大迭代次数。如果最大迭代次数0,则算法迭代次数无限制。

最小收敛误差

优化算法终止条件。

最大特征ID

最大的特征ID或特征维度,该参数取值可以大于实际值。如果未配置该参数,则系统启动SQL任务自动计算。

执行调优

核心数

默认为系统自动分配。

每个核的内存大小

默认为系统自动分配。

方式二:PAI命令方式

使用PAI命令配置PS线性回归组件参数。您可以使用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

输入表的标签列名,支持DOUBLEBIGINT类型。

featureColNames

输入表中,用于训练的特征列名。如果输入数据为稠密格式,则支持DOUBLEBIGINT类型。如果输入数据为稀疏格式,则支持STRING类型。

inputTablePartitions

输入表的分区。

enableSparse

false

输入数据是否为稀疏格式,取值范围为{true,false}

itemDelimiter

空格

KV对之间的分隔符。如果enableSparsetrue,则该参数生效。

kvDelimiter

半角冒号(:)

keyvalue之间的分隔符。如果enableSparsetrue,则该参数生效。

enableModelIo

true

是否输出到Offline Model。如果enableModelIofalse,则将模型输出到MaxCompute表。取值范围为{true,false}

maxIter

100

算法进行的最大迭代次数,取值范围为非负整数。

epsilon

0.000001

优化算法终止条件,取值范围为[0,1]

l1Weight

1.0

L1正则化系数。该参数值越大,模型非零元素越少。如果过拟合,则增大该参数值。

l2Weight

0

L2正则化系数。该参数值越大,模型参数绝对值越小。如果过拟合,则增大该参数值。

modelSize

0

最大的特征ID或特征维度,该参数取值可以大于实际值。如果未配置该参数,则系统启动SQL任务自动计算。取值范围为非负整数。

coreNum

系统自动分配

默认为系统自动分配。

memSizePerCore

系统自动分配

默认为系统自动分配。

示例

  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列。

      稀疏矩阵

      选中稀疏矩阵复选框。

      keyvalue分隔符

      配置为半角冒号(:)。

      kv对间的分隔符

      使用空格作为分隔符,留空即可。

  4. 单击画布中的运行按钮image,运行工作流。

  5. 工作流运行成功后,右键单击预测-1组件,在快捷菜单中,选择查看数据 > 预测结果输出PS线性回归预测结果

  • 本页导读 (1)
  • 配置组件
  • 方式一:可视化方式
  • 方式二:PAI命令方式
  • 示例
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等