ROC

返回表,其中显示了操作特征曲线的接收器上的点。在提高模型的鉴别阈值时,ROC 函数会告知分类模型的精度。

语法

ROC ( targets, probabilities
        [ USING PARAMETERS
              [num_bins = num‑bins]
              [, AUC = output]
              [, main_class = class‑name ] ) ] )
OVER()

参数

参数

num_bins

该整数值用于确定决策边界的数量。决策边界以 0 和 1(包含)之间的等距间隔设置。该函数在每个 num‑bin + 1 点处计算一次表。

默认值:100

更大的值会产生更精确的 AUC 近似值。

AUC
一个布尔值,指定是否输出曲线下面积 (AUC) 值。

默认值: True

main_class

仅当 targets 是 CHAR/VARCHAR 类型时使用,请指定要与 probabilities 实参关联的类。

示例

对输入表 mtcars 执行 ROC。观察到的类标签在 obs 列中,预测类标签在 prob 列中:

=> SELECT ROC(obs::int, prob::float USING PARAMETERS num_bins=5, AUC = True) OVER()
    FROM (SELECT am AS obs,
          PREDICT_LOGISTIC_REG (mpg, cyl, disp, drat, wt, qsec, vs, gear, carb
               USING PARAMETERS
                  model_name='myLogisticRegModel', type='probability') AS prob
   FROM mtcars) AS prediction_output;
 decision_boundary | false_positive_rate | true_positive_rate | AUC |comment
-------------------+---------------------+--------------------+-----+-----------------------------------
0                  |                   1 |                  1 |     |
0.5                |                   0 |                  1 |     |
1                  |                   0 |                  0 |   1 | Of 32 rows,32 were used and 0 were ignoreded
(3 rows)

该函数会返回包含以下结果的表:

  • decision_boundary 指示是否将响应分类为 0 或 1 的分界点。在每行中,如果 prob 等于或大于 decision_boundary,则将响应分类为 1。如果 prob 小于 decision_boundary,将响应值分类为 0。

  • false_positive_rate 显示了相应 decision_boundary 中的误报(当 0 被分类为 1 时)百分比。

  • true_positive_rate 显示了分类为 1 并且还属于类 1 的行的百分比。