回归算法
- 主题:
- 查询
创建对象:
- 开发人员
本文档概述了各种回归算法,重点介绍了它们的配置、关键参数以及在高级统计模型中的实际使用。 利用回归算法对因变量与自变量之间的关系进行建模,根据观测数据预测连续结果。 每个部分都包含参数描述和示例代码,以帮助您为诸如线性、随机林和生存回归等任务实施和优化这些算法。
Decision Tree回归
Decision Tree学习是一种用于统计、数据挖掘和机器学习的监督学习方法。 该方法使用分类决策树或回归决策树作为预测模型,对一组观测值做出结论。
参数
下表概述了用于配置和优化决策树模型性能的关键参数。
参数 | 描述 | 默认值 | 可能值 |
---|---|---|---|
MAX_BINS | 此参数指定用于离散化连续特征的最大二进制文件数,并确定每个节点上的拆分。 更多的二进制文件将导致更精细的粒度和细节。 | 32 | 在任何分类特征中必须至少为2并且至少为类别数。 |
CACHE_NODE_IDS | 此参数确定是否缓存每个实例的节点ID。 如果false ,则算法将树传递到执行器以将实例与节点进行匹配。 如果true ,则算法将缓存每个实例的节点ID,这可以加快深度树的训练。 用户可以通过设置CHECKPOINT_INTERVAL 来配置缓存被检查点或禁用的频率。 | false | true 或false |
CHECKPOINT_INTERVAL | 此参数指定应检查点缓存的节点ID的频率。 例如,将其设置为10 意味着每10次迭代将检查一次缓存。 仅当CACHE_NODE_IDS 设置为true 并且检查点目录在org.apache.spark.SparkContext 中配置时才适用。 | 10 | (>=1) |
IMPURITY | 此参数指定用于计算信息增益的标准。 支持的值为entropy 和gini 。 | gini | entropy 、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 | 此参数指示模型是否应包含截取项。 | true | true 、false |
FIT_LINEAR | 此参数指定是否在模型中包括线性项(也称为单向项)。 | true | true 、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
)。REG_PARAM
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
的建议深度。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
1 - variancePower
,它与R statmod
包一致。 0、1、-1和0.5的特定链接幂分别对应于Log、Identity、Inverse和Sqrt链接。SOLVER
irls
(反复重新加权的最小二乘)。irls
VARIANCE_POWER
[1, inf)
。 方差0、1、2分别对应于Gaussian、Poisson和Gamma族。[1, inf)
LINK_PREDICTION_COL
OFFSET_COL
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
CACHE_NODE_IDS
false
,则算法将树传递到执行器以将实例与节点进行匹配。 如果true
,则算法将缓存每个实例的节点ID。 缓存可以加快对更深层树的训练。false
true
、false
CHECKPOINT_INTERVAL
10
意味着每10次迭代就检查一次缓存。MAX_DEPTH
0
表示1个叶节点,深度1
表示1个内部节点和2个叶节点。MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
PREDICTION_COL
VALIDATION_INDICATOR_COL
false
用于培训,true
用于验证。LEAF_COL
FEATURE_SUBSET_STRATEGY
auto
、all
、onethird
、sqrt
、log2
或介于0和1.0之间的小数SEED
WEIGHT_COL
1.0
。LOSS_TYPE
squared
(L2)和absolute
(L1)。 注意:值不区分大小写。STEP_SIZE
(0, 1]
范围内的步长大小(也称为学习率),用于缩小每个估算器的贡献。(0, 1]
MAX_ITER
SUBSAMPLING_RATE
(0, 1]
范围内。(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
。 否则,它没有效果。示例
CREATE MODEL modelname OPTIONS(
type = 'isotonic_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset
Linear回归
Linear Regression是一种监督机器学习算法,它将线性方程式拟合到数据,以便对依赖变量和独立特征之间的关系建模。
参数
下表概述了用于配置和优化Linear Regression性能的关键参数。
MAX_ITER
REGPARAM
ELASTICNETPARAM
示例
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
CACHE_NODE_IDS
false
,则算法将树传递到执行器以将实例与节点进行匹配。 如果true
,则算法会缓存每个实例的节点ID,从而加快深度树的训练。false
true
、false
CHECKPOINT_INTERVAL
10
意味着每10次迭代就检查一次缓存。IMPURITY
entropy
、gini
MAX_DEPTH
0
表示一个叶节点,深度1
表示一个内部节点和2个叶节点。MIN_INFO_GAIN
MIN_WEIGHT_FRACTION_PER_NODE
MIN_INSTANCES_PER_NODE
MAX_MEMORY_IN_MB
BOOTSTRAP
true
、false
NUM_TREES
1
,则不使用引导。 如果大于1
,则应用引导。SUBSAMPLING_RATE
(0, 1]
范围内。LEAF_COL
PREDICTION_COL
SEED
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
TOL
1E-6
AGGREGATION_DEPTH
treeAggregate
的建议深度。 如果特征尺寸或分区数很大,可将此参数设置为较大的值。FIT_INTERCEPT
true
、false
PREDICTION_COL
CENSOR_COL
1
表示该事件已发生(未审查),而0
表示该事件已审查。MAX_BLOCK_SIZE_IN_MB
0
允许自动调整。示例
CREATE MODEL modelname OPTIONS(
type = 'survival_regression'
) AS
SELECT col1, col2, col3 FROM training-dataset