Vertica 支持各种机器学习函数,这些函数使用一组数据训练模型,并返回可进行保存以用于稍后执行的模型。
这些函数要求非超级用户具有以下权限:
-
对创建模型的架构的 CREATE 权限
-
对输入关系的 SELECT 权限
Vertica 支持各种机器学习函数,这些函数使用一组数据训练模型,并返回可进行保存以用于稍后执行的模型。
这些函数要求非超级用户具有以下权限:
对创建模型的架构的 CREATE 权限
对输入关系的 SELECT 权限
通过具有一致时间步长的平稳时间序列创建自回归 (AR) 模型,此模型可用于通过 PREDICT_AUTOREGRESSOR 进行预测。
自动回归模型将根据先前的值来预测时间序列的未来值。更具体地说,用户指定的 lag 决定了该模型在计算过程中要考虑多少个先前的时间段,且预测值为每个 lag 的线性组合。
由于输入数据必须按时间戳排序,因此,此算法为单线程算法。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
AUTOREGRESSOR ('model‑name', 'input‑relation', 'data‑column', 'timestamp‑column'
[ USING PARAMETERS
[ p = lags ]
[, missing = "imputation‑method" ]
[, regularization = "regularization‑method" ]
[, lambda = regularization‑value ]
[, compute_mse = boolean ]
] )
model‑name
input‑relation
该算法需要平稳的时间序列作为输入;使用平均值随着时间变化的时间序列可能会导致结果欠佳。
data‑column
timestamp‑column
p
p
值会削弱相关性。
默认值: 3
missing
drop:忽略缺失值。
error:缺失值会引发错误。
zero:将缺失值替换为 0。
linear_interpolation:将缺失值替换为基于缺失值前后最近的有效条目的线性插值。这意味着如果数据集中第一个或最后一个值缺失,会将其直接删除。
默认值: linear_interpolation
regularization
无
L2:权重正则化项,即惩罚权重的平方值
默认值: 无
lambda
默认值: 1.0
compute_mse
默认值: False
请参阅自回归模型示例。
对输入关系运行二分 k-means 算法。结果将生成一个具有群集中心层次结构的已训练模型,其包含一系列 k 值,每个值都可用于预测。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
BISECTING_KMEANS('model-name', 'input-relation', 'input-columns', 'num-clusters'
[ USING PARAMETERS
[exclude_columns = 'exclude-columns']
[, bisection_iterations = bisection-iterations]
[, split_method = 'split-method']
[, min_divisible_cluster_size = min-cluster-size]
[, kmeans_max_iterations = kmeans-max-iterations]
[, kmeans_epsilon = kmeans-epsilon]
[, kmeans_center_init_method = 'kmeans-init-method']
[, distance_method = 'distance-method']
[, output_view = 'output-view']
[, key_columns = 'key-columns'] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
bisection_iterations
如果设置为 >1,则允许算法运行并选择在每个二等分步骤中运行的最佳 k 均值。如果使用 kmeanspp,bisection_iterations
的值始终为 1,因为 kmeanspp 的运行成本更高(但也好过替代方案),因此它不需要多次运行。
默认值: 1
split_method
size
:选择最大群集进行二等分。
sum_squares
:选择群集内平方和最大的群集进行二等分。
默认值: sum_squares
min_divisible_cluster_size
默认值: 2
kmeans_max_iterations
默认值: 10
kmeans_epsilon
默认值: 1e-4
kmeans_center_init_method
kmeanspp
(默认):kmeans++ 算法
pseudo
:使用 Spark 所用的“伪中心”方法,将给定中心二等分,但不迭代点
distance_method
默认值: euclidean
output_view
key_columns
exclude_columns
中。centers
hierarchy
ParentCluster:每个质心的父群集质心 — 即基于其通过二等分得到一个群集的群集质心。
LeftChildCluster:每个质心的左子群集质心 — 即将一个群集二等分后得到的第一个子群集的质心。
RightChildCluster:每个质心的右子群集质心 — 即将一个群集二等分得到的第二个子群集的质心。
BisectionLevel:指定通过其得到一个群集的二等分步骤。
WithinSS:当前群集的群集内平方和
TotalWithinSS:迄今为止获得的叶群集的群集内总平方和。
metrics
总平方和
群集内总平方和
群集间总平方和
群集间平方和/总平方和
群集 x、center_id y[...] 的平方和
SELECT BISECTING_KMEANS('myModel', 'iris1', '*', '5'
USING PARAMETERS exclude_columns = 'Species,id', split_method ='sum_squares', output_view = 'myBKmeansView');
对输入关系执行 k-means 算法。结果是包含群集中心列表的模型。
您可以采用 VERTICA_MODELS 或 PMML 格式导出生成的 k 均值模型,以将其应用于 Vertica 外部的数据。您还可以在其他位置训练 k 均值模型,然后以 PMML 格式将其导入 Vertica,以对 Vertica 中的数据进行预测。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
KMEANS ( 'model‑name', 'input‑relation', 'input‑columns', 'num‑clusters'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, max_iterations = max‑iterations]
[, epsilon = epsilon‑value]
[, { init_method = 'init‑method' } | { initial_centers_table = 'init‑table' } ]
[, output_view = 'output‑view']
[, key_columns = 'key‑columns'] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。init_method
和 initial_centers_table
互斥。如果同时设置两者,此函数将返回错误。
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
max_iterations
默认值: 10
epsilon
默认值: 1e-4
init_method
random
kmeanspp
(默认):kmeans++ 算法
如果 k 值过高,可能会占用大量内存。如果函数返回错误,提示可用内存不足,请减小 k 值或使用 random
方法。
initial_centers_table
output_view
key_columns
output_view
的列。应选择这些列,以便其内容可以标识每个输入数据点。此参数仅在指定 output_view
时使用。input‑columns 中所列的仅用作 key_columns
而不用于训练的列应在 exclude_columns
中列出。centers
metrics
以下示例创建 k-means 模型 myKmeansModel
并将其应用于输入表 iris1
。APPLY_KMEANS
的调用混合了列名和常量。当传递一个常量代替列名称时,该常量将替换该列在所有行中的值:
=> SELECT KMEANS('myKmeansModel', 'iris1', '*', 5
USING PARAMETERS max_iterations=20, output_view='myKmeansView', key_columns='id', exclude_columns='Species, id');
KMEANS
----------------------------
Finished in 12 iterations
(1 row)
=> SELECT id, APPLY_KMEANS(Sepal_Length, 2.2, 1.3, Petal_Width
USING PARAMETERS model_name='myKmeansModel', match_by_pos='true') FROM iris2;
id | APPLY_KMEANS
-----+--------------
5 | 1
10 | 1
14 | 1
15 | 1
21 | 1
22 | 1
24 | 1
25 | 1
32 | 1
33 | 1
34 | 1
35 | 1
38 | 1
39 | 1
42 | 1
...
(60 rows)
对输入关系执行线性回归,并返回线性回归模型。
您可以采用 VERTICA_MODELS 或 PMML 格式导出生成的线性回归模型,以将其应用于 Vertica 外部的数据。您还可以在其他位置训练线性回归模型,然后以 PMML 格式将其导入 Vertica,以对 Vertica 中的数据进行预测。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
LINEAR_REG ( 'model‑name', 'input‑relation', 'response‑column', 'predictor‑columns'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, optimizer = 'optimizer‑method']
[, regularization = 'regularization‑method']
[, epsilon = epsilon‑value]
[, max_iterations = iterations]
[, lambda = lamda‑value]
[, alpha = alpha‑value]
[, fit_intercept = boolean‑value] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测工具列的类型必须为 numeric 或 BOOLEAN;否则模型无效。
exclude_columns
optimizer
默认值: 如果 regularization-method 设置为 L1
或 ENet
,则为 CGD
,否则将为 Newton
。
regularization
None
(默认值)
L1
L2
ENet
epsilon
在范围 (0.0,1.0) 内浮动,停止定型时的错误值。如果实际值和预测值之差小于或等于 epsilon
,或者迭代次数超过 max_iterations
,则定型停止。
默认值: 1e-6
max_iterations
(0,1000000) 范围内的整数,指最大定型迭代次数。如果迭代次数超过 max_iterations
,或者实际值与预测值之差小于或等于 epsilon
,则定型停止。
默认值: 100
lambda
regularization
参数的值。
默认值: 1
alpha
regularization
参数的值,该参数用于定义要提供的 L1 与 L2 正则化量。值 1 相当于 L1,值 0 相当于 L2。
值范围: [0,1]
默认值: 0.5
fit_intercept
fit_intercept
设置为 false 不适用于 BFGS 优化器。
默认值: True
=> SELECT LINEAR_REG('myLinearRegModel', 'faithful', 'eruptions', 'waiting'
USING PARAMETERS optimizer='BFGS', fit_intercept=true);
LINEAR_REG
----------------------------
Finished in 10 iterations
(1 row)
对输入关系执行逻辑回归。结果是一个逻辑回归模型。
您可以以 VERTICA_MODELS 或 PMML 格式导出生成的逻辑回归模型,以将其应用于 Vertica 外部的数据。您还可以在其他位置训练逻辑回归模型,然后以 PMML 格式将其导入 Vertica,以对 Vertica 中的数据进行预测。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
LOGISTIC_REG ( 'model‑name', 'input‑relation', 'response‑column', 'predictor‑columns'
[ USING PARAMETERS [exclude_columns = 'excluded‑columns']
[, optimizer = 'optimizer‑method']
[, regularization = 'regularization‑method']
[, epsilon = epsilon‑value]
[, max_iterations = iterations]
[, lambda = lamda‑value]
[, alpha = alpha‑value]
[, fit_intercept = boolean‑value] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测工具列的类型必须为 numeric 或 BOOLEAN;否则模型无效。
exclude_columns
optimizer
默认值: 如果 regularization-method 设置为 L1
或 ENet
,则为 CGD
,否则将为 Newton
。
regularization
None
(默认值)
L1
L2
ENet
epsilon
在范围 (0.0,1.0) 内浮动,停止定型时的错误值。如果实际值和预测值之差小于或等于 epsilon
,或者迭代次数超过 max_iterations
,则定型停止。
默认值: 1e-6
max_iterations
(0,1000000) 范围内的整数,指最大定型迭代次数。如果迭代次数超过 max_iterations
,或者实际值与预测值之差小于或等于 epsilon
,则定型停止。
默认值: 100
lambda
regularization
参数的值。
默认值: 1
alpha
regularization
参数的值,该参数用于定义要提供的 L1 与 L2 正则化量。值 1 相当于 L1,值 0 相当于 L2。
值范围: [0,1]
默认值: 0.5
fit_intercept
fit_intercept
设置为 false 不适用于 BFGS 优化器。
默认值: True
超级用户,或对输入关系的 SELECT 权限
=> SELECT LOGISTIC_REG('myLogisticRegModel', 'mtcars', 'am',
'mpg, cyl, disp, hp, drat, wt, qsec, vs, gear, carb'
USING PARAMETERS exclude_columns='hp', optimizer='BFGS', fit_intercept=true);
LOGISTIC_REG
----------------------------
Finished in 20 iterations
(1 row)
通过具有一致时间步长的平稳时间序列创建移动平均 (MA) 模型,此模型随后可用于通过 PREDICT_MOVING_AVERAGE 进行预测。
移动平均值模型使用早期预测误差进行未来预测。更具体地说,用户指定的 lag 决定了它在计算过程中要考虑多少先前的预测和错误。
由于输入数据必须按时间戳排序,因此,此算法为单线程算法。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
MOVING_AVERAGE ('model‑name', 'input‑relation', 'data‑column', 'timestamp‑column'
[ USING PARAMETERS
[ q = lags ]
[, missing = "imputation‑method" ]
[, regularization = "regularization‑method" ]
[, lambda = regularization‑value ]
[, compute_mse = boolean ]
] )
model‑name
input‑relation
该算法需要平稳的时间序列作为输入;使用平均值随着时间变化的时间序列可能会导致结果欠佳。
data‑column
timestamp‑column
q
默认值: 1
missing
drop:忽略缺失值。
error:缺失值会引发错误。
zero:将缺失值替换为 0。
linear_interpolation:将缺失值替换为基于缺失值前后最近的有效条目的线性插值。这意味着如果数据集中第一个或最后一个值缺失,会将其直接删除。
默认值: linear_interpolation
regularization
无
L2:权重正则化项,即惩罚权重的平方值
默认值: 无
lambda
默认值: 1.0
compute_mse
此参数仅接受“true”或“false”,不接受 BOOLEAN 的标准字面量等效项,如 1 或 0。
默认值: False
请参阅移动平均模型示例。
对输入关系执行朴素贝叶斯算法,并返回朴素贝叶斯模型。
根据数据类型处理列:
FLOAT:假定值遵循某种高斯分布。
INTEGER:假定值属于一个多项分布。
CHAR/VARCHAR:假定值遵循某种分类分布。这些列中存储的字符串值不得超过 128 个字符。
BOOLEAN:值被视为具有两个值的分类值。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
NAIVE_BAYES ( 'model‑name', 'input‑relation', 'response‑column', 'predictor‑columns'
[ USING PARAMETERS [exclude_columns = 'excluded‑columns'] [, alpha = alpha-value] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。响应列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。
输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测变量列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。BOOLEAN 列值在训练前转换为 FLOAT 值:0 表示 false,1 表示 true。
exclude_columns
alpha
默认值: 1.0
colsInfo
index:训练中提供的列的索引(从 0 开始)。索引 0 用于响应列。
name:列的名称。
type:用于响应的标签,其值为 Gaussian、Multinominal、Categorical 或 Bernoulli。
alpha
prior
label:类标签。
value:每个类的百分比。
nRowsTotal
nRowsRejected
callStr
Gaussian
index:预测变量列的索引。
mu:模型的平均值。
sigmaSq:模型的标准差平方。
Multinominal
index:预测变量列的索引。
prob:概率取决于由 class_name 指示的类。
Bernoulli
index:预测变量列的索引。
probTrue:此预测变量列中值为 TRUE 的概率。
Categorical
category:预测变量名称中的值。
<class_name>:具有该值的概率取决于由 class_name 指示的类。
超级用户或输入关系的 SELECT 权限。
=> SELECT NAIVE_BAYES('naive_house84_model', 'house84_train', 'party', '*'
USING PARAMETERS exclude_columns='party, id');
NAIVE_BAYES
--------------------------------------------------
Finished. Accepted Rows: 324 Rejected Rows: 0
(1 row)
训练随机森林模型,以对输入关系进行分类。
这是元函数。您必须在顶级 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] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测变量列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。
Vertica XGBoost 和随机森林算法为分类列 (BOOL/VARCHAR) 提供原生支持。仅需将分类列作为预测工具传递给模型,算法就会自动将这些列视为分类列,且不会尝试以与数值列相同的方式将它们拆分为多个二进制文件;Vertica 将这些列视为真正的分类值,而不是简单地将它们转换为底层的连续值。
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
ntree
[1,1000] 范围内的整数,指森林中的树木数量。
默认值: 20
mtry
默认值: 预测变量总数的平方根
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)
训练随机森林模型,以对输入关系执行回归。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
RF_REGRESSOR ( '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] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测变量列的类型必须为数字、CHAR/VARCHAR 或 BOOLEAN;否则模型无效。
Vertica XGBoost 和随机森林算法为分类列 (BOOL/VARCHAR) 提供原生支持。仅需将分类列作为预测工具传递给模型,算法就会自动将这些列视为分类列,且不会尝试以与数值列相同的方式将它们拆分为多个二进制文件;Vertica 将这些列视为真正的分类值,而不是简单地将它们转换为底层的连续值。
exclude_columns
ntree
[1,1000] 范围内的整数,指森林中的树木数量。
默认值: 20
mtry
默认值: 预测变量总数的三分之一
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
此参数的默认值与 sklearn 等库中的类似参数不同,因此会产生一个预测值与原始响应值不同的模型。
默认值: 5
min_info_gain
在 [0.0,1.0) 范围内浮动,指用于包括拆分的最小阈值。信息增益小于此阈值的拆分将被丢弃。
默认值: 0.0
nbins
[2,1000] 范围内的整数,指用于离散连续特征的二进制文件数量。
默认值: 32
=> SELECT RF_REGRESSOR ('myRFRegressorModel', 'mtcars', 'carb', 'mpg, cyl, hp, drat, wt' USING PARAMETERS
ntree=100, sampling_size=0.3);
RF_REGRESSOR
--------------
Finished
(1 row)
针对输入关系训练 SVM 模型。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
SVM_CLASSIFIER ( 'model‑name', input‑relation, 'response‑column', 'predictor‑columns'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, C = 'cost']
[, epsilon = 'epsilon‑value']
[, max_iterations = 'max‑iterations']
[, class_weights = 'weight']
[, intercept_mode = 'intercept‑mode']
[, intercept_scaling = 'scale'] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测工具列的类型必须为 numeric 或 BOOLEAN;否则模型无效。
exclude_columns
C
默认值: 1.0
epsilon
默认值: 1e-3
max_iterations
默认值: 100
class_weights
None
(默认值):不使用权重
value0、value1:两个逗号分隔的字符串,指定两个正 FLOAT 值,其中 value0 将权重分配给类 0,value1 将权重分配给类 1。
auto
:根据样本数量对每个类别进行加权。
intercept_mode
regularized
(默认值):适合截距并对其应用正则化。
unregularized
:适合截距,但不包括在正则化中。
intercept_scaling
以下示例在 mtcars
表上使用 SVM_CLASSIFIER
:
=> SELECT SVM_CLASSIFIER(
'mySvmClassModel', 'mtcars', 'am', 'mpg,cyl,disp,hp,drat,wt,qsec,vs,gear,carb'
USING PARAMETERS exclude_columns = 'hp,drat');
SVM_CLASSIFIER
----------------------------------------------------------------
Finished in 15 iterations.
Accepted Rows: 32 Rejected Rows: 0
(1 row)
针对输入关系训练 SVM 模型。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
SVM_REGRESSOR ( 'model‑name', input‑relation, 'response‑column', 'predictor‑columns'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, error_tolerance = error-tolerance]
[, C = cost]
[, epsilon = epsilon‑value]
[, max_iterations = max‑iterations]
[, intercept_mode = 'mode']
[, intercept_scaling = 'scale'] ] )
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数 exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
所有预测工具列的类型必须为 numeric 或 BOOLEAN;否则模型无效。
exclude_columns
默认值: 0.1
C
默认值: 1.0
epsilon
默认值: 1e-3
max_iterations
默认值: 100
intercept_mode
regularized
(默认值):适合截距并对其应用正则化。
unregularized
:适合截距,但不包括在正则化中。
intercept_scaling
=> SELECT SVM_REGRESSOR('mySvmRegModel', 'faithful', 'eruptions', 'waiting'
USING PARAMETERS error_tolerance=0.1, max_iterations=100);
SVM_REGRESSOR
----------------------------------------------------------------
Finished in 5 iterations.
Accepted Rows: 272 Rejected Rows: 0
(1 row)
训练 XGBoost 模型以对输入关系执行分类。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
XGB_CLASSIFIER ('model-name', 'input-relation', 'response-column', 'predictor-columns'
[ USING PARAMETERS
[ exclude_columns = 'excluded-columns' ]
[, max_ntree = max-trees ]
[, max_depth = max-depth ]
[, objective = 'optimization-strategy' ]
[, learning_rate = learning-rate ]
[, min_split_loss = minimum ]
[, weight_reg = regularization ]
[, nbins = num-bins ]
[, sampling_size = fraction-of-rows ]
[, col_sample_by_tree = sample-ratio-per-tree ]
[, col_sample_by_node = sample-ratio-per-node ]
] )
model-name
模型的名称(不区分大小写)。
input-relation
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。response-column
predictor-columns
CHAR、VARCHAR 和 BOOL 类型的列视为分类特征;所有其他类型的列则视为数字特征。
Vertica XGBoost 和随机森林算法为分类列 (BOOL/VARCHAR) 提供原生支持。仅需将分类列作为预测工具传递给模型,算法就会自动将这些列视为分类列,且不会尝试以与数值列相同的方式将它们拆分为多个二进制文件;Vertica 将这些列视为真正的分类值,而不是简单地将它们转换为底层的连续值。
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
max_ntree
默认值: 10
max_depth
默认值: 6
objective
默认值: 'crossentropy
'
split_proposal_method
global
:/*describe */
local
: /describe/
默认值: global
learning_rate
默认值: 0.3
min_split_loss
如果设置为 0 或省略,则不设置最小值。在这种情况下,根据正或负目标函数值修剪树。
默认值: 0.0(禁用)
weight_reg
默认值: 1.0
nbins
默认值: 32
sampling_size
值 1 表示使用所有行。
默认值: 1.0
col_sample_by_tree
值 1 表示使用所有列。
col_sample_by
如果指定多个参数,则参数彼此上下“堆叠”。即:假如有 24 列,对于 col_sample_by_tree=0.5
和 col_sample_by_node=0.5
,col_sample_by_tree
将采样 12 列。这样将可用的未采样列池减少到 12。 col_sample_by_node
然后对剩余池的一半进行采样,因此每个节点采样 6 列。
此算法始终对至少一列进行采样。
默认值: 1
col_sample_by_node
值 1 表示使用所有列。
col_sample_by
如果指定多个参数,则参数彼此上下“堆叠”。即:假如有 24 列,对于 col_sample_by_tree=0.5
和 col_sample_by_node=0.5
,col_sample_by_tree
将采样 12 列。这样将可用的未采样列池减少到 12。 col_sample_by_node
然后对剩余池的一半进行采样,因此每个节点采样 6 列。
此算法始终对至少一列进行采样。
默认值: 1
请参阅XGBoost 用于分类。
训练 XGBoost 模型以对输入关系执行回归。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
XGB_REGRESSOR ('model-name', 'input-relation', 'response-column', 'predictor-columns'
[ USING PARAMETERS
[ exclude_columns = 'excluded-columns' ]
[, max_ntree = max-trees ]
[, max_depth = max-depth ]
[, objective = 'optimization-strategy' ]
[, learning_rate = learning-rate ]
[, min_split_loss = minimum ]
[, weight_reg = regularization ]
[, nbins = num-bins ]
[, sampling_size = fraction-of-rows ]
[, col_sample_by_tree = sample-ratio-per-tree ]
[, col_sample_by_node = sample-ratio-per-node ]
] )
model-name
模型的名称(不区分大小写)。
input-relation
SYNC_WITH_HCATALOG_SCHEMA
以同步 hcatalog
架构,然后运行机器学习功能。response-column
predictor-columns
CHAR、VARCHAR 和 BOOL 类型的列视为分类特征;所有其他类型的列则视为数字特征。
Vertica XGBoost 和随机森林算法为分类列 (BOOL/VARCHAR) 提供原生支持。仅需将分类列作为预测工具传递给模型,算法就会自动将这些列视为分类列,且不会尝试以与数值列相同的方式将它们拆分为多个二进制文件;Vertica 将这些列视为真正的分类值,而不是简单地将它们转换为底层的连续值。
exclude_columns
input-columns 中要排除在处理范围之外的列名的逗号分隔列表。
max_ntree
默认值: 10
max_depth
默认值: 6
objective
squarederror
' 是唯一的选项。
默认值: 'squarederror
'
split_proposal_method
global
:/*describe */
local
: /describe/
默认值: global
learning_rate
默认值: 0.3
min_split_loss
如果设置为 0 或省略,则不设置最小值。在这种情况下,根据正或负目标函数值修剪树。
默认值: 0.0(禁用)
weight_reg
默认值: 1.0
nbins
默认值: 32
sampling_size
值 1 表示使用所有行。
默认值: 1.0
col_sample_by_tree
值 1 表示使用所有列。
col_sample_by
如果指定多个参数,则参数彼此上下“堆叠”。即:假如有 24 列,对于 col_sample_by_tree=0.5
和 col_sample_by_node=0.5
,col_sample_by_tree
将采样 12 列。这样将可用的未采样列池减少到 12。 col_sample_by_node
然后对剩余池的一半进行采样,因此每个节点采样 6 列。
此算法始终对至少一列进行采样。
默认值: 1
col_sample_by_node
值 1 表示使用所有列。
col_sample_by
如果指定多个参数,则参数彼此上下“堆叠”。即:假如有 24 列,对于 col_sample_by_tree=0.5
和 col_sample_by_node=0.5
,col_sample_by_tree
将采样 12 列。这样将可用的未采样列池减少到 12。 col_sample_by_node
然后对剩余池的一半进行采样,因此每个节点采样 6 列。
此算法始终对至少一列进行采样。
默认值: 1
请参阅用于回归的 XGBoost。