LINEAR_REG
对输入关系执行线性回归,并返回线性回归模型。
您可以采用 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] ] )
参数
- model‑name
- 标识要创建的模型,其中 model‑name 符合标识符中描述的约定。 同一架构中的序列、表、投影、视图和模型中也必须是唯一的。
- input‑relation
- 包含用于构建模型的训练数据的表或视图。 如果输入关系在 Hive 中定义,请使用
SYNC_WITH_HCATALOG_SCHEMA
以同步hcatalog
架构,然后运行机器学习功能。 - response‑column
- 表示因变量或结果的输入列的名称。此列中的所有值必须为数字,否则模型将无效。
- predictor‑columns
输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数
exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。所有预测工具列的类型必须为 numeric 或 BOOLEAN;否则模型无效。
注意
所有 BOOLEAN 预测工具值在定型前都转换为 FLOAT 值:0 表示 false,1 表示 true。预测期间不会检查类型,因此可以在定型中使用 BOOLEAN 预测工具列,并在预测期间提供同名的 FLOAT 列。在这种情况下,所有 FLOAT 值必须为 0 或 1。
参数
exclude_columns
- 要从处理中排除来自 predictor‑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
- ≥ 0 的整数,指定
regularization
参数的值。默认值: 1
alpha
- ≥ 0 的整数,指定 ENET
regularization
参数的值,该参数用于定义要提供的 L1 与 L2 正则化量。值 1 相当于 L1,值 0 相当于 L2。值范围: [0,1]
默认值: 0.5
fit_intercept
- 布尔值,指定模型是否包含截距。如果设置为 false,在训练模型时将不使用截距。请注意,将
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)