文档Experience Platform查询服务指南

回归算法

最近更新: 2024年11月22日
  • 主题:
  • 查询

创建对象:

  • 开发人员

本文档概述了各种回归算法,重点介绍了它们的配置、关键参数以及在高级统计模型中的实际使用。 利用回归算法对因变量与自变量之间的关系进行建模,根据观测数据预测连续结果。 每个部分都包含参数描述和示例代码,以帮助您为诸如线性、随机林和生存回归等任务实施和优化这些算法。

Decision Tree回归

Decision Tree学习是一种用于统计、数据挖掘和机器学习的监督学习方法。 该方法使用分类决策树或回归决策树作为预测模型,对一组观测值做出结论。

参数

下表概述了用于配置和优化决策树模型性能的关键参数。

参数描述默认值可能值
MAX_BINS此参数指定用于离散化连续特征的最大二进制文件数,并确定每个节点上的拆分。 更多的二进制文件将导致更精细的粒度和细节。32在任何分类特征中必须至少为2并且至少为类别数。
CACHE_NODE_IDS此参数确定是否缓存每个实例的节点ID。 如果false,则算法将树传递到执行器以将实例与节点进行匹配。 如果true,则算法将缓存每个实例的节点ID,这可以加快深度树的训练。 用户可以通过设置CHECKPOINT_INTERVAL来配置缓存被检查点或禁用的频率。falsetrue或false
CHECKPOINT_INTERVAL此参数指定应检查点缓存的节点ID的频率。 例如,将其设置为10意味着每10次迭代将检查一次缓存。 仅当CACHE_NODE_IDS设置为true并且检查点目录在org.apache.spark.SparkContext中配置时才适用。10(>=1)
IMPURITY此参数指定用于计算信息增益的标准。 支持的值为entropy和gini。ginientropy、gini
MAX_DEPTH此参数指定树的最大深度。 例如,深度0表示1个叶节点,深度1表示1个内部节点和2个叶节点。 深度必须在[0, 30]范围内。5[0, 30]
MIN_INFO_GAIN此参数设置拆分所需的最小信息增益,以使拆分在树节点上被视为有效。0.0(>=0.0)
MIN_WEIGHT_FRACTION_PER_NODE此参数指定每个子节点在拆分后必须具有的加权样本数的最小分数。 如果任一子节点的分数小于此值,则将放弃拆分。0.0[0.0, 0.5]
MIN_INSTANCES_PER_NODE此参数设置拆分后每个子节点必须具有的最小实例数。 如果拆分产生的实例数少于此值,则该拆分将被视为无效而丢弃。1(>=1)
MAX_MEMORY_IN_MB此参数指定分配给直方图聚合的最大内存(以MB为单位)。 如果内存太小,则每个迭代将只拆分一个节点,其聚合可能会超过此大小。256任意正整数值
PREDICTION_COL此参数指定用于存储预测的列的名称。“预测”任意字符串
SEED此参数设置模型中使用的随机种子。None任何64位数字
WEIGHT_COL此参数指定权重列的名称。 如果此参数未设置或为空,则所有实例权重都将被视为1.0。未设置任意字符串

示例

CREATE MODEL modelname OPTIONS(
  type = 'decision_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Factorization Machines回归

Factorization Machines是一个支持正常梯度下降和AdamW求解器的回归学习算法。 算法基于S. Rendle (2010)的论文“Factorization Machines”。

参数

下表概述了用于配置和优化Factorization Machines回归性能的关键参数。

参数描述默认值可能值
TOL此参数指定算法的收敛公差。 值越大,收敛速度越快,但精度越低。1E-6(>= 0)
FACTOR_SIZE此参数定义因子的维数。 值越高,模型复杂性越高。8(>= 0)
FIT_INTERCEPT此参数指示模型是否应包含截取项。truetrue、false
FIT_LINEAR此参数指定是否在模型中包括线性项(也称为单向项)。truetrue、false
INIT_STD此参数定义模型中使用的初始系数的标准偏差。0.01(>= 0)
MAX_ITER此参数指定算法要运行的最大迭代次数。100(>= 0)
MINI_BATCH_FRACTION此参数设置微型批次分数,该分数确定每个批次中使用的数据部分。 它必须在(0, 1]范围内。1.0(0, 1]
REG_PARAM此参数设置正则化参数以防止过拟合。0.0(>= 0)
SEED此参数指定用于模型初始化的随机种子。None任何64位数字
SOLVER此参数指定用于优化的求解器算法。“adamW”gd (梯度下降),adamW
STEP_SIZE此参数指定第一个优化步骤的初始步长(或学习率)。1.0任何正值
PREDICTION_COL此参数指定存储预测的列的名称。“预测”任意字符串

示例

CREATE MODEL modelname OPTIONS(
  type = 'factorization_machines_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Generalized Linear回归

与线性回归(假设结果遵循正态(高斯)分布)不同,Generalized Linear模型(GLM)允许结果遵循不同类型的分布,如Poisson或二项式,具体取决于数据的性质。

参数

下表概述了用于配置和优化Generalized Linear回归性能的关键参数。

参数
描述
默认值
可能值
MAX_ITER
设置最大迭代次数(适用于使用求解器irls)。
25
(>= 0)
REG_PARAM
正则化参数。
未设置
(>= 0)
TOL
收敛公差。
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate的建议深度。
2
(>= 2)
FAMILY
族参数,用于描述模型中使用的误差分布。 支持的选项为gaussian、binomial、poisson、gamma和tweedie。
“高斯”
gaussian,binomial,poisson,gamma,tweedie
FIT_INTERCEPT
是否适合截取条件。
true
true、false
LINK
链接函数,定义线性预测器和分布函数平均值之间的关系。 支持的选项为identity、log、inverse、logit、probit、cloglog和sqrt。
未设置
identity,log,inverse,logit,probit,cloglog,sqrt
LINK_POWER
此参数指定电源链接函数中的索引。 参数仅适用于Tweedie系列。 如果未设置,则默认为1 - variancePower,它与R statmod包一致。 0、1、-1和0.5的特定链接幂分别对应于Log、Identity、Inverse和Sqrt链接。
1
任何数值
SOLVER
用于优化的求解器算法。 支持的选项: irls(反复重新加权的最小二乘)。
"irls"
irls
VARIANCE_POWER
此参数指定Tweedie分布的方差函数中的幂,定义方差与平均值之间的关系。 支持的值为0和[1, inf)。 方差0、1、2分别对应于Gaussian、Poisson和Gamma族。
0.0
0,[1, inf)
LINK_PREDICTION_COL
链接预测(线性预测器)列名称。
未设置
任意字符串
OFFSET_COL
偏移列名称。 如果未设置,则所有实例偏移都将被视为0.0。偏移特征的常数系数为1.0。
未设置
任意字符串
WEIGHT_COL
权重列名称。 如果未设置或为空,则所有实例权重都将被视为1.0。 在二项式族中,权重对应于试验次数,并且在AIC计算中舍入非整数权重。
未设置
任意字符串

示例

CREATE MODEL modelname OPTIONS(
  type = 'generalized_linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Gradient Boosted Tree回归

梯度提升树(GBTs)是一种有效的分类和回归方法,它将多决策树的预测结合起来,以提高预测精度和模型性能。

参数

下表概述了用于配置和优化Gradient Boosted Tree回归性能的关键参数。

参数
描述
默认值
可能值
MAX_BINS
用于将连续特征划分为离散间隔的最大桶数,这有助于确定特征在每个决策树节点上的分割方式。 更多的二进制文件提供了更高的粒度。
32
必须至少为2,并且等于或大于任何分类特征中的类别数。
CACHE_NODE_IDS
如果false,则算法将树传递到执行器以将实例与节点进行匹配。 如果true,则算法将缓存每个实例的节点ID。 缓存可以加快对更深层树的训练。
false
true、false
CHECKPOINT_INTERVAL
指定对缓存的节点ID进行检查的频率。 例如,10意味着每10次迭代就检查一次缓存。
10
(>= 1)
MAX_DEPTH
树的最大深度(非负值)。 例如,深度0表示1个叶节点,深度1表示1个内部节点和2个叶节点。
5
(>= 0)
MIN_INFO_GAIN
在树节点上考虑拆分所需的最小信息增益。
0.0
(>= 0.0)
MIN_WEIGHT_FRACTION_PER_NODE
拆分后每个子项必须具有的加权样本数的最小分数。 如果拆分导致每个子代中的总权重分数小于此值,则拆分会被丢弃。
0.0
(>= 0.0, <= 0.5)
MIN_INSTANCES_PER_NODE
拆分后每个子级必须具有的最小实例数。 如果拆分产生的实例数少于此值,则拆分会被放弃。
1
(>= 1)
MAX_MEMORY_IN_MB
分配给直方图聚合的最大内存(以MB为单位)。 如果此值太小,则每个迭代只拆分1个节点,并且其聚合可能会超过此大小。
256
任意正整数值
PREDICTION_COL
预测输出的列名称。
“预测”
任意字符串
VALIDATION_INDICATOR_COL
列名,指示每行是用于训练还是用于验证。 false用于培训,true用于验证。
未设置
任意字符串
LEAF_COL
叶索引的列名称。 通过预排序遍历生成每个树中各个实例的预测叶索引。
“”
任意字符串
FEATURE_SUBSET_STRATEGY
此参数指定每个树节点要考虑的分割特征数。
"auto"
auto、all、onethird、sqrt、log2或介于0和1.0之间的小数
SEED
随机种子。
未设置
任何64位数字
WEIGHT_COL
列名称,例如,权重。 如果未设置或为空,则所有实例权重都将被视为1.0。
未设置
任意字符串
LOSS_TYPE
此参数指定Gradient Boosted Tree模型最小化的loss函数。
"squared"
squared (L2)和absolute (L1)。 注意:值不区分大小写。
STEP_SIZE
(0, 1]范围内的步长大小(也称为学习率),用于缩小每个估算器的贡献。
0.1
(0, 1]
MAX_ITER
算法的最大迭代次数。
20
(>= 0)
SUBSAMPLING_RATE
用于学习每个决策树的训练数据的小数,在(0, 1]范围内。
1.0
(0, 1]

示例

CREATE MODEL modelname OPTIONS(
  type = 'gradient_boosted_tree_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Isotonic回归

Isotonic Regression是一种算法,用于迭代调整距离,同时保留数据中的相对不相似顺序。

参数

下表概述了用于配置和优化Isotonic Regression性能的关键参数。

参数
描述
默认值
可能值
ISOTONIC
指定当true时输出序列是等调(递增),还是当false时输出序列是反调(递减)。
true
true、false
WEIGHT_COL
列名称,例如,权重。 如果未设置或为空,则所有实例权重都将被视为1.0。
未设置
任意字符串
PREDICTION_COL
预测输出的列名称。
“预测”
任意字符串
FEATURE_INDEX
功能的索引,在featuresCol为矢量列时适用。 如果未设置,则默认值为0。 否则,它没有效果。
0
任意非负整数

示例

CREATE MODEL modelname OPTIONS(
  type = 'isotonic_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Linear回归

Linear Regression是一种监督机器学习算法,它将线性方程式拟合到数据,以便对依赖变量和独立特征之间的关系建模。

参数

下表概述了用于配置和优化Linear Regression性能的关键参数。

参数
描述
默认值
可能值
MAX_ITER
最大迭代次数。
100
(>= 0)
REGPARAM
正则化参数用于控制模型的复杂性。
0.0
(>= 0)
ELASTICNETPARAM
ElasticNet混合参数,用于控制L1(套索)和L2(脊)之间的平衡。 值为0将应用L2惩罚,值为1将应用L1惩罚。
0.0
(>= 0, <= 1)

示例

CREATE MODEL modelname OPTIONS(
  type = 'linear_reg'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Random Forest Regression

Random Forest Regression是一种集成算法,用于在训练期间构建多个决策树,并返回这些决策树用于回归任务的平均预测,有助于防止过度拟合。

参数

下表概述了用于配置和优化Random Forest Regression性能的关键参数。

参数
描述
默认值
可能值
MAX_BINS
用于离散连续特征并确定每个节点上的特征拆分方式的最大二进制文件数。 更多的二进制文件提供了更高的粒度。
32
必须至少为2,并且至少等于任何分类特征中的类别数。
CACHE_NODE_IDS
如果false,则算法将树传递到执行器以将实例与节点进行匹配。 如果true,则算法会缓存每个实例的节点ID,从而加快深度树的训练。
false
true、false
CHECKPOINT_INTERVAL
指定对缓存的节点ID进行检查的频率。 例如,10意味着每10次迭代就检查一次缓存。
10
(>= 1)
IMPURITY
用于信息增益计算的标准(区分大小写)。
"熵"
entropy、gini
MAX_DEPTH
树的最大深度(非负值)。 例如,深度0表示一个叶节点,深度1表示一个内部节点和2个叶节点。
5
任意非负整数
MIN_INFO_GAIN
在树节点上考虑拆分所需的最小信息增益。
0.0
(>= 0.0)
MIN_WEIGHT_FRACTION_PER_NODE
拆分后每个子项必须具有的加权样本数的最小分数。 如果拆分导致每个子代中总重量的分数小于此值,则放弃拆分。
0.0
(>= 0.0, <= 0.5)
MIN_INSTANCES_PER_NODE
拆分后每个子级必须具有的最小实例数。 如果拆分产生的实例数少于此值,则拆分会被放弃。
1
(>= 1)
MAX_MEMORY_IN_MB
分配给直方图聚合的最大内存(以MB为单位)。 如果此值太小,则每个迭代只拆分1个节点,并且其聚合可能会超过此大小。
256
(>= 1)
BOOTSTRAP
是否在构建树时使用引导示例。
TRUE
true、false
NUM_TREES
要训练的树的数量(至少1)。 如果1,则不使用引导。 如果大于1,则应用引导。
20
(>= 1)
SUBSAMPLING_RATE
用于训练每个决策树的训练数据的部分,在(0, 1]范围内。
1.0
(>= 0.0, <= 1)
LEAF_COL
通过预排序遍历生成的叶索引的列名,即每个树中每个实例的预测叶索引。
“”
任意字符串
PREDICTION_COL
预测输出的列名称。
“预测”
任意字符串
SEED
随机种子。
未设置
任何64位数字
WEIGHT_COL
列名称,例如,权重。 如果未设置或为空,则所有实例权重都将被视为1.0。
未设置
任何有效的列名或留空。

示例

CREATE MODEL modelname OPTIONS(
  type = 'random_forest_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

Survival Regression

Survival Regression用于根据Weibull distribution拟合参数存活率回归模型,称为Accelerated Failure Time (AFT)模型。 它可以将实例栈叠到块中以提高性能。

参数

下表概述了用于配置和优化Survival Regression性能的关键参数。

参数
描述
默认值
可能值
MAX_ITER
算法应运行的最大迭代次数。
100
(>= 0)
TOL
收敛公差。
1E-6
(>= 0)
AGGREGATION_DEPTH
treeAggregate的建议深度。 如果特征尺寸或分区数很大,可将此参数设置为较大的值。
2
(>= 2)
FIT_INTERCEPT
是否适合截取条件。
TRUE
true、false
PREDICTION_COL
预测输出的列名称。
“预测”
任意字符串
CENSOR_COL
用于审查的列名称。 值为1表示该事件已发生(未审查),而0表示该事件已审查。
"censor"
0, 1
MAX_BLOCK_SIZE_IN_MB
用于将输入数据栈叠到块中的最大内存(以MB为单位)。 如果分区中的剩余数据大小较小,则相应地调整此值。 值0允许自动调整。
0.0
(>= 0)

示例

CREATE MODEL modelname OPTIONS(
  type = 'survival_regression'
) AS
  SELECT col1, col2, col3 FROM training-dataset

后续步骤

阅读本文档后,您现在知道如何配置和使用各种回归算法。 接下来,请参阅有关分类和群集的文档,了解其他类型的高级统计模型。

recommendation-more-help
ccf2b369-4031-483f-af63-a93b5ae5e3fb