ERROR_RATE
使用输入表返回一个计算错误分类率并将其显示为 FLOAT 值的表。 ERROR_RATE
返回具有以下维度的表:
-
行:类数加上包含跨类总错误率的一行
-
列:2
语法
ERROR_RATE ( targets, predictions [ USING PARAMETERS num_classes = num‑classes ] ) OVER()
参数
实参 targets 和 predictions 必须设置为数据类型相同的输入列,即以下之一:INTEGER、BOOLEAN 或 CHAR/VARCHAR。根据数据类型,这些列将按如所示标识类:
-
INTEGER:从零开始的连续整数(介于 0 和 (num-classes-1) 之间),其中 num-classes 为类数。例如,给定以下输入列值 —
{0, 1, 2, 3, 4
} — Vertica 假定有五个类。注意
如果输入列值不连续,Vertica 将插入缺失值。因此,给定以下输入值 —{0, 1, 3, 5, 6,}
— Vertica 假设有七个类。 -
BOOLEAN:“是”或“否”
-
CHAR/VARCHAR:类名。如果输入列的类型为 CHAR/VARCHAR 列,则还必须将参数
num_classes
设置为类数。注意
Vertica 将类数计算为两个输入列中值的并集。例如,假如 targets 和 predictions 中的值集输入列为如下所示,则 Vertica 将计为四个类:
{'milk', 'soy milk', 'cream'} {'soy milk', 'almond milk'}
参数
num_classes
一个整数 > 1,指定要传递给该函数的类数。
如果指定的输入列为 CHAR/VARCHAR 类型,则必须设置此参数。否则,该函数将根据列数据类型处理此参数:
-
INTEGER:默认设置为 2,如果类数为任何其他值,则必须正确设置此参数。
-
BOOLEAN:默认设置为 2,不能设置为任何其他值。
-
特权
非超级用户:模型所有者或模型的使用权限
示例
此示例说明如何对名为 mtcars
的输入表执行 ERROR_RATE 函数。obs
列中显示响应变量,而 pred
列中显示预测值。由于该示例是一个分类问题,因此所有的响应变量值和预测变量值都是 0 或 1,表示二元分类。
在函数返回的表中,第一列显示类 ID 列。第二列显示该类 ID 的相应错误率。第三列表示该函数成功使用了多少行以及是否忽略了任何行。
=> SELECT ERROR_RATE(obs::int, pred::int USING PARAMETERS num_classes=2) OVER()
FROM (SELECT am AS obs, PREDICT_LOGISTIC_REG (mpg, cyl, disp, drat, wt, qsec, vs, gear, carb
USING PARAMETERS model_name='myLogisticRegModel', type='response') AS pred
FROM mtcars) AS prediction_output;
class | error_rate | comment
-------+--------------------+---------------------------------------------
0 | 0 |
1 | 0.0769230797886848 |
| 0.03125 | Of 32 rows, 32 were used and 0 were ignored
(3 rows)