PREDICT_PMML
对输入关系应用导入的 PMML 模型。函数返回采用 PMML 模型编码的模型类型预期的结果。
在以下情况下,PREDICT_PMML 返回 NULL:
-
预测指标为无效值或 NULL 值
-
分类预测指标属于未知类
注意
PREDICT_PMML 针对使用 Output
标记的模型返回复杂类型 ROW 的值。Vertica 目前不支持直接将此数据插入表中。
您可以通过在将输出插入表之前使用 TO_JSON 将其更改为 JSON 来消除此限制:
=> CREATE TABLE predicted_output AS SELECT TO_JSON(PREDICT_PMML(X1,X2,X3
USING PARAMETERS model_name='pmml_imported_model'))
AS predicted_value
FROM input_table;
语法
PREDICT_PMML ( input‑columns
USING PARAMETERS model_name = 'model-name' [, match_by_pos = match-by-position] )
参数
- input‑columns
- 输入关系中要使用的列的逗号分隔列表,或者使用星号 (*) 选择所有列。
参数
model_name
- 模型的名称(不区分大小写)。函数支持对以下模型类型进行编码的 PMML 模型:
-
K-means
-
线性回归
-
逻辑回归
-
match_by_pos
该布尔值指定输入列如何与模型特征匹配:
-
false
(默认值):按名称匹配。 -
true
:按输入列列表中列的位置匹配。
-
示例
在此示例中,函数调用使用表中的所有列作为预测指标,同时使用 PMML 格式的 "my_kmeans
" 模型预测值:
SELECT PREDICT_PMML(* USING PARAMETERS model_name='my_kmeans') AS predicted_label FROM table;
在此示例中,函数调用仅将列 col1, col2
作为预测指标,使用架构 "my_schema
" 中的模型 "my_kmeans
" 预测每一行的值:
SELECT PREDICT_PMML(col1, col2 USING PARAMETERS model_name='my_schema.my_kmeans') AS predicted_label FROM table;
在此示例中,函数调用返回的错误既非 schema 也非 model-name,可以接受 * 作为值:
SELECT PREDICT_PMML(* USING PARAMETERS model_name='*.*') AS predicted_label FROM table;
SELECT PREDICT_PMML(* USING PARAMETERS model_name='*') AS predicted_label FROM table;
SELECT PREDICT_PMML(* USING PARAMETERS model_name='models.*') AS predicted_label FROM table;