PREDICT_XGB_CLASSIFIER_CLASSES
对输入关系应用 XGBoost 分类器模型并返回类的概率:
-
VARCHAR
predicted
列包含概率最高的类标签。 -
多个 FLOAT 列,其中第一个
probability
列包含预测列中报告的类的概率。其他列包含classes
参数中指定的每个类的概率。 -
与参数
key_columns
中指定的匹配输入列具有相同值和数据类型的关键字列。
所有树都会影响每个响应类的预测概率,选择概率最高的类。
语法
PREDICT_XGB_CLASSIFIER_CLASSES ( predictor‑columns)
USING PARAMETERS model_name = 'model‑name'
[, key_columns = 'key‑columns']
[, exclude_columns = 'excluded‑columns']
[, classes = 'classes']
[, match_by_pos = match‑by‑position]
[, probability_normalization = 'prob-normalization' ] )
OVER( [window-partition-clause] )
参数
- input‑columns
- 输入关系中要使用的列的逗号分隔列表,或者使用星号 (*) 选择所有列。
参数
model_name
模型的名称(不区分大小写)。
key_columns
用于标识输出行的预测工具列名称的逗号分隔列表。要排除这些和其他预测工具列用于预测,请将其包含在参数
exclude_columns
的实参列表中。exclude_columns
- 要从处理中排除来自 predictor‑columns 列的逗号分隔列表。
classes
- 以逗号分隔的模型类标签列表。分类器预测属于每个给定类的概率。值区分大小写。
match_by_pos
- 布尔值,指定预测指标列如何匹配模型特征:
-
false
(默认值):按名称匹配。 -
true
:按预测指标列列表中列的位置匹配。
-
probability_normalization
分类器的标准化方法,它可以是
logit``softmax
(多类分类器)或(二元分类器)。如果未指定,则使用默认的logit
函数进行标准化。
示例
使用
XGB_CLASSIFIER
创建 XGBoost 分类器模型后,您可以使用 PREDICT_XGB_CLASSIFIER_CLASSES
查看每个分类的概率。在此示例中,XGBoost 分类器模型 "xgb_iris" 用于预测给定花属于“鸢尾 (iris)”属的概率:
=> SELECT PREDICT_XGB_CLASSIFIER_CLASSES(Sepal_Length, Sepal_Width, Petal_Length, Petal_Width
USING PARAMETERS model_name='xgb_iris') OVER (PARTITION BEST) FROM iris1;
predicted | probability
------------+-------------------
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.999911552783011
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
setosa | 0.9999650465368
versicolor | 0.99991871763563
.
.
.
(90 rows)
您还可以指定其他类。在此示例中,PREDICT_XGB_CLASSIFIER_CLASSES
与上一个示例进行相同的预测,但同样返回花属于指定的 classes
“北美车前 (virginica)”和“花叶芦竹 (versicolor)”的概率:
=> SELECT PREDICT_XGB_CLASSIFIER_CLASSES(Sepal_Length, Sepal_Width, Petal_Length, Petal_Width
USING PARAMETERS model_name='xgb_iris', classes='virginica,versicolor', probability_normalization='logit') OVER (PARTITION BEST) FROM iris1;
predicted | probability | virginica | versicolor
------------+-------------------+----------------------+----------------------
setosa | 0.9999650465368 | 1.16160301545536e-05 | 2.33374330460065e-05
setosa | 0.9999650465368 | 1.16160301545536e-05 | 2.33374330460065e-05
setosa | 0.9999650465368 | 1.16160301545536e-05 | 2.33374330460065e-05
.
.
.
versicolor | 0.99991871763563 | 6.45697562080953e-05 | 0.99991871763563
versicolor | 0.999967282051702 | 1.60052775404199e-05 | 0.999967282051702
versicolor | 0.999648819964864 | 0.00028366342010669 | 0.999648819964864
.
.
.
virginica | 0.999977039257386 | 0.999977039257386 | 1.13305901169304e-05
virginica | 0.999977085131063 | 0.999977085131063 | 1.12847163501674e-05
virginica | 0.999977039257386 | 0.999977039257386 | 1.13305901169304e-05
(90 rows)