线性回归(Linear Regression)是分析因变量和多个自变量之间的线性关系模型,参数服务器PS(Parameter Server)致力于解决大规模的离线及在线训练任务。PS线性回归支持千亿样本、十亿特征的大规模线性训练任务。
组件配置
您可以使用以下任意一种方式,配置PS线性回归组件参数。
方式一:可视化方式
在Designer(原PAI-Studio)工作流页面配置组件参数。
页签 |
参数 |
描述 |
字段设置 |
选择特征列 |
输入数据源中,参与训练的特征列。 |
选择标签列 |
支持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 |
否 |
输出的模型评估表名称。如果enableFitGoodness为true,则该参数必选。 |
无 |
labelColName |
是 |
输入表的标签列名,支持DOUBLE及BIGINT类型。 |
无 |
featureColNames |
是 |
输入表中,用于训练的特征列名。如果输入数据为稠密格式,则支持DOUBLE及BIGINT类型。如果输入数据为稀疏格式,则支持STRING类型。 |
无 |
inputTablePartitions |
否 |
输入表的分区。 |
无 |
enableSparse |
否 |
输入数据是否为稀疏格式,取值范围为{true,false}。 |
false |
itemDelimiter |
否 |
KV对之间的分隔符。如果enableSparse为true,则该参数生效。 |
空格 |
kvDelimiter |
否 |
keyvalue之间的分隔符。如果enableSparse为true,则该参数生效。 |
英文冒号(:) |
enableModelIo |
否 |
是否输出到Offline Model。如果enableModelIo为false,则将模型输出到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。 |
系统自动分配 |
示例
-
使用如下SQL语句,生成输入数据(以KV格式数据为例)。
drop table if exists lm_test_input; create table lm_test_input as select * from ( select 2 as label, '1:0.55 2:-0.15 3:0.82 4:-0.99 5:0.17' as features from dual union all select 1 as label, '1:-1.26 2:1.36 3:-0.13 4:-2.82 5:-0.41' as features from dual union all select 1 as label, '1:-0.77 2:0.91 3:-0.23 4:-4.46 5:0.91' as features from dual union all select 2 as label, '1:0.86 2:-0.22 3:-0.46 4:0.08 5:-0.60' as features from dual union all select 1 as label, '1:-0.76 2:0.89 3:1.02 4:-0.78 5:-0.86' as features from dual union all select 1 as label, '1:2.22 2:-0.46 3:0.49 4:0.31 5:-1.84' as features from dual union all select 0 as label, '1:-1.21 2:0.09 3:0.23 4:2.04 5:0.30' as features from dual union all select 1 as label, '1:2.17 2:-0.45 3:-1.22 4:-0.48 5:-1.41' as features from dual union all select 0 as label, '1:-0.40 2:0.63 3:0.56 4:0.74 5:-1.44' as features from dual union all select 1 as label, '1:0.17 2:0.49 3:-1.50 4:-2.20 5:-0.35' as features from dual ) tmp;
生成的数据如下。
说明
KV格式数据的特征ID必须为正整数,特征值必须为实数。如果特征ID为字符串,则需要进行序列化操作。如果特征值为类别型字符串,则需要进行特征离散化操作。
-
构建实验,详情请参见算法建模。
-
配置PS线性回归组件的参数(配置如下表格中的参数,其余参数使用默认值)。
页签
参数
描述
字段设置
是否稀疏格式
选择true。
选择特征列
选择features列。
选择标签列
选择label列。
执行调优
核心数
配置为3。
每个核的内存大小
配置为1024 MB。
-
配置预测组件的参数(配置如下表格中的参数,其余参数使用默认值)。
页签
参数
描述
字段设置
特征列
默认全选,多余列不影响预测结果。
原样输出列
选择label列。
稀疏矩阵
选中稀疏矩阵复选框。
key与value分隔符
配置为英文冒号(:)。
kv对间的分隔符
配置为 。
-
运行实验,查看预测结果。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/162824.html