RF_CLASSIFIER
训练随机森林模型,以对输入关系进行分类。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
RF_CLASSIFIER ( 'model‑name', input‑relation, 'response‑column', 'predictor‑columns'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, ntree = num‑trees]
[, mtry = num‑features]
[, sampling_size = sampling‑size]
[, max_depth = depth]
[, max_breadth = breadth]
[, min_leaf_size = leaf-size]
[, min_info_gain = threshold]
[, nbins = num‑bins] ] )
参数
- model‑name
- 标识作为训练结果存储的模型,其中 model‑name 符合标识符中描述的约定。 同一架构中的序列、表、投影、视图和模型中也必须是唯一的。
- input‑relation
- 包含训练样本的表或视图。 如果输入关系在 Hive 中定义,请使用
SYNC_WITH_HCATALOG_SCHEMA
以同步hcatalog
架构,然后运行机器学习功能。 - response‑column
- 数字、CHAR/VARCHAR 或 BOOLEAN 类型的输入列,表示因变量。
注意
Vertica 自动将 numeric 响应列值转换为 VARCHAR。 - predictor‑columns
输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数
exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。所有预测变量列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。
Vertica XGBoost 和随机森林算法为分类列 (BOOL/VARCHAR) 提供原生支持。仅需将分类列作为预测工具传递给模型,算法就会自动将这些列视为分类列,且不会尝试以与数值列相同的方式将它们拆分为多个二进制文件;Vertica 将这些列视为真正的分类值,而不是简单地将它们转换为底层的连续值。
参数
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
ntree
[1,1000] 范围内的整数,指森林中的树木数量。
默认值: 20
mtry
- [1, number‑predictors] 范围内的整数,随机选择的特征数,从中选择最佳特征以在给定的树节点上进行拆分。
默认值: 预测变量总数的平方根
sampling_size
在 (0.0,1.0] 范围内浮动,指为定型每棵树而随机挑选的输入数据部分。
默认值: 0.632
max_depth
[1,100] 范围内的整数,指每个树的最大深度。例如,
max_depth
为 0 时,表示树只有一个根节点;max_depth
为 2 时,表示树有四个叶节点。默认值: 5
max_breadth
[1,1e9] 范围内的整数,指树可以拥有的最大叶节点数。
默认值: 32
min_leaf_size
[1, 1e6] 范围内的整数,拆分节点后每个分支必须具有的最小样本数。在其左分支或右分支中导致较少剩余样本的拆分将被丢弃,并且该节点被视为叶节点。
默认值: 1
min_info_gain
在 [0.0,1.0) 范围内浮动,指用于包括拆分的最小阈值。信息增益小于此阈值的拆分将被丢弃。
默认值: 0.0
nbins
[2,1000] 范围内的整数,指用于离散连续特征的二进制文件数量。
默认值: 32
模型属性
示例
=> SELECT RF_CLASSIFIER ('myRFModel', 'iris', 'Species', 'Sepal_Length, Sepal_Width,
Petal_Length, Petal_Width' USING PARAMETERS ntree=100, sampling_size=0.3);
RF_CLASSIFIER
--------------------------------------------------
Finished training
(1 row)