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;否则模型无效。

参数

exclude_columns
要从处理中排除来自 predictor‑columns 列的逗号分隔列表。
optimizer
用于训练模型的优化器方法,为以下之一:
  • 牛顿
  • BFGS
  • CGD

默认值: 如果 regularization-method 设置为 L1ENet,则为 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)

另请参阅