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 的行的百分比。