当前位置: 首页 > 文档资料 > Angel 中文文档 >

Algorithm Parameter Description

优质
小牛编辑
126浏览
2023-12-01

任务类型,worker,network配置

配置项名称默认值配置项含义
traintrainAngel 任务类型,表示模型训练
predictpredict使用模型进行预测
inctraininctrain对已有模型进行增量训练
ml.matrix.dot.use.parallel.executorfalse稠密矩阵Dot运算是否使用并行
angel.worker.thread.num1一个worker使用的线程数
angel.compress.bytes8低精度压缩,每个浮点数的大小,可设为[1,8]

数据参数

配置项名称默认值配置项含义
ml.data.typelibsvmAngel 模型输入数据格式,支持libsvm,dense,dummy;默认值为libsvm
ml.data.splitor\s+输入数据分隔符,可定制分隔符
ml.data.has.labeltrue输入数据是否有标签,默认有标签
ml.data.label.trans.classNoTrans输入数据标签转换,支持NoTrans<不转换>,PosNegTrans(threshold)<利用阈值将标签转换成+1,-1,即大于阈值为1,小于阈值为-1>,ZeroOneTrans(threshold)<利用阈值将标签转换成0, 1,即大于阈值为1,小于阈值为0>,AddOneTrans<所有标签+1>,SubOneTrans<所有标签-1>
ml.data.label.trans.threshold0输入数据标签转换阈值,与ml.data.label.trans.class中的PosNegTrans,ZeroOneTrans搭配使用
ml.data.validate.ratio0.05验证集采样率
ml.feature.index.range-1输入数据维度,由于特征hash时, 不能充满整个hash空间, 其中有大量空隙, 该项配置就是hash空间的大小. 最大的featureID值+1,当选择-1时表示特征维度可以映射到(0, long.max)
ml.block.size1000000划分矩阵后每个块的的大小,行数*列数<=block.size,目的是使得矩阵划分的均匀
ml.data.use.shufflefalse数据是否使用随机打乱
ml.data.posneg.ratio-1正负样本采样比例,-1表示关闭采样功能, 正常值为正实数(0~1),对于正负样本相差较大的情况有用(如5倍以上)

数据格式

名称说明
libsvm每行文本表示一个样本,每个样本的格式为"y index1:value1 index2:value2 index3:value3 ..."。其中:index为特征的ID,value为对应的特征值;训练数据的y为样本的类别,可以取1、-1两个值;预测数据的y为样本的ID值。比如,属于正类的样本[2.0, 3.1, 0.0, 0.0, -1, 2.2]的文本表示为“1 0:2.0 1:3.1 4:-1 5:2.2”,其中“1”为类别,"0:2.0"表示第0个特征的值为2.0。同理,属于负类的样本[2.0, 0.0, 0.1, 0.0, 0.0, 0.0]被表示为“-1 0:2.0 2:0.1”
dense每行文本表示一个样本,每个样本的格式为"y value1 value2 value3 ..."。训练数据的y为样本的类别,可以取1、-1两个值;预测数据的y为样本的ID值。比如,属于正类的样本[2.0, 3.1, 0.0, 0.0, -1, 2.2]的文本表示为“1 2.0 3.1 -1 2.2”,其中“1”为类别,"2.0"表示第0个特征的值为2.0。同理,属于负类的样本[2.0, 0.0, 0.1, 0.0, 0.0, 0.0]被表示为“-1 2.0 0.1”
dummy每行文本表示一个样本,每个样本的格式为"y index1 index2 index3 ..."。其中:index特征的ID;训练数据的y为样本的类别,可以取1、-1两个值;预测数据的y为样本的ID值。比如,属于正类的样本[2.0, 3.1, 0.0, 0.0, -1, 2.2]的文本表示为“1 0 1 4 5”,其中“1”为类别,“0 1 4 5”表示特征向量的第0、1、4、5个维度的值不为0。同理,属于负类的样本[2.0, 0.0, 0.1, 0.0, 0.0, 0.0]被表示为“-1 0 2”

模型参数

配置项名称默认值配置项含义
ml.model.class.name""Angel模型类名称
ml.model.size-1模型的大小,当选择-1时范围在(0, +long.max)
ml.model.typeRowType.T_FLOAT_DENSE.toStringAngel模型类型,支持28种类型
ml.model.is.classificationtrue模型是否属于分类模型
ml.epoch.num30迭代次数
ml.batch.sample.ratio1.0表示每个batch占整体数据的百分比
ml.learn.rate0.5初始学习率
ml.num.update.per.epoch10一个epoch中更新参数的次数
ml.opt.decay.class.nameStandardDecay衰减类名称,可选项:StandardDecay<标准衰减,与alpha一起使用>,WarmRestarts<热启动衰减,与alpha一起使用>,CorrectionDecay<更正衰减,与alpha和beta一起使用>,ConstantLearningRate<常数衰减>
ml.opt.decay.on.batchfalse是否在批量上进行衰减
ml.opt.decay.intervals100衰减间隔
ml.opt.decay.alpha0.001衰减系数alpha
ml.opt.decay.beta0.001衰减系数beta

模型类型

名称默认值配置项含义
RowType.T_DOUBLE_DENSE0表示模型数据行的类型是索引值在Int范围的稠密Double类型
RowType.T_DOUBLE_DENSE_COMPONENT1表示模型数据行的类型是索引值在Int范围的组合稠密Double类型
RowType.T_DOUBLE_DENSE_LONGKEY_COMPONENT2表示模型数据行的类型是索引值在Long范围的组合稠密Double类型
RowType.T_DOUBLE_SPARSE3表示模型数据行的类型是索引值在Int范围的稀疏Double类型
RowType.T_DOUBLE_SPARSE_COMPONENT4表示模型数据行的类型是索引值在Int范围的组合稀疏Double类型
RowType.T_DOUBLE_SPARSE_LONGKEY5表示模型数据行的类型是索引值在Long范围的稀疏Double类型
RowType.T_DOUBLE_SPARSE_LONGKEY_COMPONENT6表示模型数据行的类型是索引值在Int范围的组合稀疏Double类型
RowType.T_FLOAT_DENSE7表示模型数据行的类型是索引值在Int范围的稠密Float类型
RowType.T_FLOAT_DENSE_COMPONENT8表示模型数据行的类型是索引值在Int范围的组合稠密Float类型
RowType.T_FLOAT_DENSE_LONGKEY_COMPONENT9表示模型数据行的类型是索引值在Long范围的组合稠密Float类型
RowType.T_FLOAT_SPARSE10表示模型数据行的类型是索引值在Int范围的稀疏Float类型
RowType.T_FLOAT_SPARSE_COMPONENT11表示模型数据行的类型是索引值在Int范围的组合稀疏Float类型
RowType.T_FLOAT_SPARSE_LONGKEY12表示模型数据行的类型是索引值在Long范围的稀疏Float类型
RowType.T_FLOAT_SPARSE_LONGKEY_COMPONENT13表示模型数据行的类型是索引值在Long范围的组合稀疏Float类型
RowType.T_LONG_DENSE14表示模型数据行的类型是索引值在Int范围的稠密Long类型
RowType.T_LONG_DENSE_COMPONENT15表示模型数据行的类型是索引值在Int范围的组合稠密Long类型
RowType.T_LONG_DENSE_LONGKEY_COMPONENT16表示模型数据行的类型是索引值在Long范围的组合稠密Long类型
RowType.T_LONG_SPARSE17表示模型数据行的类型是索引值在Long范围的稀疏Long类型
RowType.T_LONG_SPARSE_COMPONENT18表示模型数据行的类型是索引值在Int范围的组合稀疏Long类型
RowType.T_LONG_SPARSE_LONGKEY19表示模型数据行的类型是索引值在Long范围的稀疏Long类型
RowType.T_LONG_SPARSE_LONGKEY_COMPONENT20表示模型数据行的类型是索引值在Long范围的组合稀疏Long类型
RowType.T_INT_DENSE21表示模型数据行的类型是索引值在Int范围的稠密Int类型
RowType.T_INT_DENSE_COMPONENT22表示模型数据行的类型是索引值在Int范围的组合稠密Int类型
RowType.T_INT_DENSE_LONGKEY_COMPONENT23表示模型数据行的类型是索引值在Long范围的组合稠密Int类型
RowType.T_INT_SPARSE24表示模型数据行的类型是索引值在Int范围的稀疏Int类型
RowType.T_INT_SPARSE_COMPONENT25表示模型数据行的类型是索引值在Int范围的稀疏Int类型
RowType.T_INT_SPARSE_LONGKEY26表示模型数据行的类型是索引值在Long范围的稀疏Int类型
RowType.T_INT_SPARSE_LONGKEY_COMPONENT27表示模型数据行的类型是索引值在Long范围的组合稀疏Int类型

优化器配置

配置项名称默认值配置项含义
ml.fclayer.optimizerMomentum全连接层优化器,可选优化器:Momentum,AdaDelta,AdaGrad,Adam,FTRL
ml.embedding.optimizerMomentumembedding层优化器,可选优化器:Momentum,AdaDelta,AdaGrad,Adam,FTRL
ml.inputlayer.optimizerMomentum输入层优化器,可选优化器:Momentum,AdaDelta,AdaGrad,Adam,FTRL
ml.fclayer.matrix.output.formatclassOf[RowIdColIdValueTextRowFormat].getCanonicalName全连接层输出矩阵格式
ml.embedding.matrix.output.formatclassOf[TextColumnFormat].getCanonicalNameembedding层输出矩阵格式
ml.simpleinputlayer.matrix.output.formatclassOf[ColIdValueTextRowFormat].getCanonicalName简单输入层输出矩阵格式
ml.reg.l20.0L2惩罚项系数
ml.reg.l10.0L1惩罚项系数

Momentum

配置项名称默认值配置项含义
ml.opt.momentum.momentum0.9动量系数

AdaDelta

配置项名称默认值配置项含义
ml.opt.adadelta.alpha0.9alpha系数
ml.opt.adadelta.beta0.9beta系数

AdaGrad

配置项名称默认值配置项含义
ml.opt.adagrad.beta0.9beta系数

Adam

配置项名称默认值配置项含义
ml.opt.adam.gamma0.99gamma系数
ml.opt.adam.beta0.9beta系数

FTRL

配置项名称默认值配置项含义
ml.opt.ftrl.alpha0.1alpha系数
ml.opt.ftrl.beta1.0beta系数

层,模型等参数配置

Embedding 参数配置

配置项名称默认值配置项含义
ml.fm.field.num-1输入数据特征维数,-1表示全部特征,范围可以映射到(0, +long.max)
ml.fm.rank8embedding中vector的长度

(MLP) Layer 参数配置

配置项名称默认值配置项含义
ml.num.class2类别数目

(MLR) Layer 参数配置

配置项名称默认值配置项含义
ml.mlr.rank5区域个数

RobustRegression 参数配置

配置项名称默认值配置项含义
ml.robustregression.loss.delta1.0残差分段点

Kmeans 参数配置

配置项名称默认值配置项含义
ml.kmeans.center.num5K值,即簇的个数
ml.kmeans.c0.1学习速率参数

GBDT 参数配置

配置项名称默认值配置项含义
ml.gbdt.task.typeclassification任务类型,可选项:classification, regression
ml.gbdt.class.num2类别个数
ml.gbdt.tree.num10树的数量
ml.gbdt.tree.depth5树的最大高度
ml.gbdt.max.node.num最大的节点个数
ml.gbdt.split.num5每个特征的梯度直方图的大小
ml.gbdt.sample.ratio1特征下采样的比率
ml.gbdt.min.child.weight0.01最小的子节点权重
ml.gbdt.reg.alpha0L1正则
ml.gbdt.reg.lambda1.0L2正则
ml.gbdt.thread.num20线程个数
ml.gbdt.batch.size10000批量大小
ml.gbdt.server.splitfalse两阶段分裂算法开关
ml.gbdt.cate.featnone离散特征,"特征id:特征数量"的格式,以逗号分隔,例如"0:2,1:3"。设为"none"表示没有离散特征,设为"all"表示全部为离散特征。

评估指标

配置项名称默认值配置项含义
train.loss训练损失
validate.loss验证损失
log.likelihood对数似然
train.error训练错误
validate.error验证错误

项目地址:https://github.com/Angel-ML/angel
官网:https://angelml.ai/