一组 Vertica 机器学习函数评估训练模型生成的预测数据,或返回有关模型本身的信息。
模型评估
- 1: CONFUSION_MATRIX
- 2: CROSS_VALIDATE
- 3: ERROR_RATE
- 4: LIFT_TABLE
- 5: MSE
- 6: PRC
- 7: READ_TREE
- 8: RF_PREDICTOR_IMPORTANCE
- 9: ROC
- 10: RSQUARED
1 - CONFUSION_MATRIX
使用响应变量的观察值和预测值计算表的混淆矩阵。 CONFUSION_MATRIX
生成具有以下尺寸的表格:
-
行:类的数量
-
列:类的数量 + 2
语法
CONFUSION_MATRIX ( 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
数据集中的汽车分为自动档或手动档。观察值在输入列 obs
中,而预测值在输入列 pred
中。因为这是一个二元分类问题,所以所有值都是 0 或 1。
在返回的表中,列 am
中值为 0 的所有 19 辆汽车都被 PREDICT_LOGISTIC_REGRESSION
正确预测其值为 0。在 am
列中值为 1 的 13 辆汽车中,12 辆被正确预测其值为 1,而 1 辆汽车被错误地分类为值 0:
=> SELECT CONFUSION_MATRIX(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')AS PRED
FROM mtcars) AS prediction_output;
actual_class | predicted_0 | predicted_1 | comment
-------------+-------------+-------------+------------------------------------------
0 | 19 | 0 |
1 | 0 | 13 | Of 32 rows, 32 were used and 0 were ignored
(2 rows)
2 - CROSS_VALIDATE
使用输入关系对学习算法执行 k-fold 交叉验证,并对超参数执行网格搜索。输出是所选算法的平均性能指标。该函数支持 SVM 分类、朴素贝叶斯和逻辑回归。
这是元函数。您必须在顶级 SELECT 语句中调用元函数。
行为类型
易变语法
CROSS_VALIDATE ( 'algorithm', 'input‑relation', 'response‑column', 'predictor‑columns'
[ USING PARAMETERS
[exclude_columns = 'excluded‑columns']
[, cv_model_name = 'model']
[, cv_metrics = 'metrics']
[, cv_fold_count = num‑folds]
[, cv_hyperparams = 'hyperparams']
[, cv_prediction_cutoff = prediction‑cutoff] ] )
参数
- 算法
- 算法训练函数的名称,为以下之一:
- input‑relation
- 包含用于训练和测试的数据的表或视图。 如果输入关系在 Hive 中定义,请使用
SYNC_WITH_HCATALOG_SCHEMA
以同步hcatalog
架构,然后运行机器学习功能。 - response‑column
- 包含响应的输入列的名称。
- predictor‑columns
输入关系中表示模型自变量的列的逗号分隔列表,或者使用星号 (*) 以选择所有列。如果选择所有列,则参数
exclude_columns
的实参列表必须包含 response‑column,以及任何无效的列作为预测工具列。
参数
exclude_columns
- 要从处理中排除来自 predictor‑columns 列的逗号分隔列表。
cv_model_name
- 允许您检索交叉验证过程结果的模型的名称。如果忽略此参数,则显示结果但不保存。如果将此参数设置为模型名称,则可以使用摘要函数
GET_MODEL_ATTRIBUTE
和GET_MODEL_SUMMARY
检索结果 -
cv_metrics
- 用于评估算法的指标,指定为指标名称的逗号分隔列表或 JSON 数组。在这两种情况下,您都需要指定以下一个或多个指标名称:
-
accuracy
(默认值) -
error_rate
-
TP
:真阳性,预测为 1 类的 1 类案例数 -
FP
:假阳性,预测为 1 类的 0 类案例数 -
TN
:真阴性,预测为 0 类的 0 类案例数 -
FN
:假阴性,预测 0 类的 1 类案例数 -
TPR
或recall
:真阳性率,1 类中的正确预测 -
FPR
:假阳性率,0 类中的错误预测 -
TNR
:真阴性率,0 类中的正确预测 -
FNR
:假阴性率,1 类中的错误预测 -
PPV
或precision
:阳性预测值,预测为 1 类案例中的正确预测 -
NPV
:阴性预测值,预测为 0 类案例中的正确预测 -
MSE
:均方误差![](/images/machine-learning/mean-squared-error.png)
-
MAE
:平均绝对误差![](/images/machine-learning/mean-absolute-error.png)
-
rsquared
:决定系数![](/images/machine-learning/rsquared.png)
-
explained_variance
![](/images/machine-learning/explained-variance.png)
-
fscore
(1 + beta˄2) * precison * recall / (beta˄2 * precision + recall)
beta 默认等于 1
-
auc_roc
:使用指定数量 bin 的 ROC 的 AUC,默认为 100 -
auc_prc
:使用指定数量 bin 的 PRC 的 AUC,默认为 100 -
counts
:解析为其他四个指标的快捷方式:TP
、FP
、TN
和FN
-
count
:仅在 JSON 语法中有效,计算由一个类 (case-class-label) 标记但预测为另一类 (predicted-class-label) 的案例数:cv_metrics='[{"count":[case-class-label, predicted-class-label]}]'
-
cv_fold_count
- 拆分数据的折叠数。
默认值: 5
cv_hyperparams
- JSON 字符串,描述用于超参数网格搜索的参数组合。JSON 字符串包含成对的超参数名称。每个超参数的值可以指定为数组或序列。例如:
{"param1":[value1,value2,...], "param2":{"first":first_value, "step":step_size, "count":number_of_values} }
应使用 JSON 标准引用超参数名称和字符串值。这些参数被传递给训练函数。
cv_prediction_cutoff
- 传递给逻辑回归预测阶段的临界阈值,介于 0 和 1(不含)之间的 FLOAT
默认值: 0.5
模型属性
call_string
- 在调用
CROSS_VALIDATE
时指定的所有输入实参的值。 run_average
- 参数
cv_metrics
中指定的所有指标的所有折叠的平均值(如果指定);否则为平均精度。 fold_info
- 每个折叠的行数:
-
fold_id
:折叠的索引。 -
row_count
:折叠中为测试而保留的行数。
-
counters
- 该函数的所有计数器,包括:
-
accepted_row_count
:input_relation
中的总行数减去拒绝的行数。 -
rejected_row_count
:因包含无效值而跳过的input_relation
行数。 -
feature_count
:输入到机器学习模型的特征数量。
-
run_details
- 有关每次运行的信息,其中运行意味着训练一个模型,然后在一个保留的折叠上测试该模型:
-
fold_id
:保留用于测试的折叠的索引。 -
iteration_count
:在非保留折叠的模型训练中使用的迭代数。 -
accuracy
:参数cv_metrics
中指定的所有指标,或精度(如果未提供cv_metrics
)。 -
error_rate
:参数cv_metrics
中指定的所有指标,或精度(如果忽略该参数)。
-
特权
非超级用户:
-
对输入关系的 SELECT 权限
-
机器学习算法在其中生成模型的默认架构的 CREATE 和 USAGE 权限。如果提供了
cv_model_name
,则交叉验证结果将作为模型保存在同一架构中。
在 JSON 中指定指标
参数 cv_metrics
可以将指标指定为 JSON 对象 的数组,其中每个对象指定一个指标名称。例如,以下表达式将 cv_metrics
设置为指定为 JSON 对象的两个指标,即 accuracy
和 error_rate
:
cv_metrics='["accuracy", "error_rate"]'
在下一个示例中,cv_metrics
设置为两个指标,即 accuracy
和 TPR
(真阳性率)。此处,TPR
指标被指定为一个 JSON 对象,它接受一个包含两个类标签实参(即 2 和 3)的数组:
cv_metrics='[ "accuracy", {"TPR":[2,3] } ]'
指定为 JSON 对象的指标可以接受参数。在以下示例中,fscore
指标指定参数 beta
,该参数设置为 0.5:
cv_metrics='[ {"fscore":{"beta":0.5} } ]'
参数支持对于某些指标特别有用。例如,指标 auc_roc
和 auc_prc
构建一条曲线,然后计算该曲线下的面积。对于 ROC
,曲线是通过绘制指标 TPR
与 FPR
而成的;对于 PRC
,通过绘制指标 PPV
(precision
) 与 TPR
(recall
) 而成。通过将参数 num_bins
设置为大于默认值 100 的值,可以提高此类曲线的精度。例如,以下表达式计算使用 1000 个 bin 构建的 ROC 曲线的 AUC:
cv_metrics='[{"auc_roc":{"num_bins":1000}}]'
将指标用于多类分类器函数
所有支持的指标均为二元分类器函数
LOGISTIC_REG
和
SVM_CLASSIFIER
而定义。对于
NAIVE_BAYES
等多类分类器函数,可以针对每个 one-versus-the-rest 二元分类器计算这些指标。使用实参请求每个分类器的指标。例如,如果训练数据具有整数类标签,您可以使用 precision
(PPV
) 指标设置 cv_metrics
,如下所示:
cv_metrics='[{"precision":[0,4]}]'
此设置指定返回为两个分类器计算精度的两列:
-
第 1 列:对 0 与非 0 进行分类
-
第 2 列:对 4 与非 4 进行分类
如果忽略类标签实参,则使用索引为 1 的类。不是为单个 one-versus-the-rest 分类器计算指标,而是以下列方式之一计算平均值:macro
、micro
或 weighted
(默认)。例如,以下 cv_metrics
设置返回按类大小加权的平均值:
cv_metrics='[{"precision":{"avg":"weighted"}}]'
可以采用类似方式为多类分类器定义 AUC 类型的指标。例如,以下 cv_metrics
设置计算每个 one-versus-the-rest 分类器的 ROC 曲线下面积,然后返回按类大小加权的平均值。
cv_metrics='[{"auc_roc":{"avg":"weighted", "num_bins":1000}}]'
示例
=> SELECT CROSS_VALIDATE('svm_classifier', 'mtcars', 'am', 'mpg'
USING PARAMETERS cv_fold_count= 6,
cv_hyperparams='{"C":[1,5]}',
cv_model_name='cv_svm',
cv_metrics='accuracy, error_rate');
CROSS_VALIDATE
----------------------------
Finished
===========
run_average
===========
C |accuracy |error_rate
---+--------------+----------
1 | 0.75556 | 0.24444
5 | 0.78333 | 0.21667
(1 row)
3 - 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)
4 - LIFT_TABLE
返回一个对比机器学习模型的可预测质量的表。此函数也被称为提升图。
语法
LIFT_TABLE ( targets, probabilities
[ USING PARAMETERS [num_bins = num‑bins] [, main_class = class‑name ] ] )
OVER()
参数
参数
num_bins
该整数值用于确定决策边界的数量。决策边界以 0 和 1(包含)之间的等距间隔设置。该函数在每个 num‑bin + 1 点处计算一次表。
默认值:100
main_class
仅当 targets 是 CHAR/VARCHAR 类型时使用,请指定要与 probabilities 实参关联的类。
示例
对输入表 mtcars
执行 LIFT_TABLE
。
=> SELECT LIFT_TABLE(obs::int, prob::float USING PARAMETERS num_bins=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='probability') AS prob
FROM mtcars) AS prediction_output;
decision_boundary | positive_prediction_ratio | lift | comment
-------------------+---------------------------+------------------+---------------------------------------------
1 | 0 | NaN |
0.5 | 0.40625 | 2.46153846153846 |
0 | 1 | 1 | Of 32 rows, 32 were used and 0 were ignored
(3 rows)
第一列 decision_boundary
指示将响应值分类为 0 还是 1 的分界点。例如,对于每行,如果 prob
大于或等于 decision_boundary
,将响应值分类为 1。如果 prob
小于 decision_boundary
,将响应值分类为 0。
第二列中,positive_prediction_ratio
表示分类 1 中使用相应 decision_boundary
值进行争取分类的样本比例。
第三列中,lift
函数用正确或错误分类为类 1 的行百分比来除 positive_prediction_ratio
。
5 - MSE
返回一个表,其中显示机器学习模型中预测和响应列的均方误差。
语法
MSE ( targets, predictions ) OVER()
参数
- targets
- FLOAT 类型的模型响应变量。
- predictions
- 包含响应变量预测值的 FLOAT 输入列。
示例
对输入表 faithful_testing
执行 MSE 函数。obs
列中显示响应变量,而 prediction
列中显示预测值。
=> SELECT MSE(obs, prediction) OVER()
FROM (SELECT eruptions AS obs,
PREDICT_LINEAR_REG (waiting USING PARAMETERS model_name='myLinearRegModel') AS prediction
FROM faithful_testing) AS prediction_output;
mse | Comments
-------------------+-----------------------------------------------
0.252925741352641 | Of 110 rows, 110 were used and 0 were ignored
(1 row)
6 - PRC
返回一个表,其中显示了接收器 Precision Recall (PR) 曲线上的点。
语法
PRC ( targets, probabilities
[ USING PARAMETERS
[num_bins = num‑bins]
[, f1_score = return‑score ]
[, main_class = class‑name ] )
OVER()
参数
参数
num_bins
该整数值用于确定决策边界的数量。决策边界以 0 和 1(包含)之间的等距间隔设置。该函数在每个 num‑bin + 1 点处计算一次表。
默认值:100
f1_score
- 一个布尔值,指定是否返回包含 f1 分数的列 - 精度和召回度量的调和平均值,其中 F1 分数在 1 处达到其最佳值(完美的精度和召回率),在 0 处达到最差值。
默认值:false
main_class
仅当 targets 是 CHAR/VARCHAR 类型时使用,请指定要与 probabilities 实参关联的类。
示例
对名为 mtcars
的输入表执行 PRC 函数。obs
列中显示响应变量,而 pred
列中显示预测变量。
=> SELECT PRC(obs::int, prob::float USING PARAMETERS num_bins=2, f1_score=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 | recall | precision | f1_score | comment
------------------+--------+-----------+-------------------+--------------------------------------------
0 | 1 | 0.40625 | 0.577777777777778 |
0.5 | 1 | 1 | 1 | Of 32 rows, 32 were used and 0 were ignored
(2 rows)
第一列 decision_boundary
指示将响应值分类为 0 还是 1 的分界点。例如,在每行中,如果概率等于或大于 decision_boundary
,则将响应分类为 1。如果概率小于 decision_boundary
,则将响应分类为 0。
7 - READ_TREE
读取随机森林或 XGBoost 模型中树的内容。
语法
READ_TREE ( USING PARAMETERS model_name = 'model‑name' [, tree_id = tree‑id] [, format = 'format'] )
参数
model_name
- 标识作为训练结果存储的模型,其中 model‑name 符合标识符中描述的约定。 同一架构中的序列、表、投影、视图和模型中也必须是唯一的。
tree_id
- 树标识符,0 到 n-1 之间的整数,其中 n 为随机森林或 XGBoost 模型中的树数。如果忽略此参数,则返回所有树。
format
- 返回树的输出格式,为以下之一:
-
tabular
:返回包含 12 个输出列的表。 -
graphviz
:返回可以传递给 graphviz 工具并呈现树的图形可视化的 DOT 语言源。
-
特权
非超级用户:模型上的 USAGE 权限
示例
从 READ_TREE 获取随机森林模型的表格格式输出:
=> SELECT READ_TREE ( USING PARAMETERS model_name='myRFModel', tree_id=1 ,
format= 'tabular') LIMIT 2;
-[ RECORD 1 ]-------------+-------------------
tree_id | 1
node_id | 1
node_depth | 0
is_leaf | f
is_categorical_split | f
split_predictor | petal_length
split_value | 1.921875
weighted_information_gain | 0.111242236024845
left_child_id | 2
right_child_id | 3
prediction |
probability/variance |
-[ RECORD 2 ]-------------+-------------------
tree_id | 1
node_id | 2
node_depth | 1
is_leaf | t
is_categorical_split |
split_predictor |
split_value |
weighted_information_gain |
left_child_id |
right_child_id |
prediction | setosa
probability/variance | 1
从 READ_TREE 获取 graphviz 格式的输出:
=> SELECT READ_TREE ( USING PARAMETERS model_name='myRFModel', tree_id=1 ,
format= 'graphviz')LIMIT 1;
-[ RECORD 1 ]+-------------------------------------------------------------------
---------------------------------------------------------------------------------
tree_id | 1
tree_digraph | digraph Tree{
1 [label="petal_length < 1.921875 ?", color="blue"];
1 -> 2 [label="yes", color="black"];
1 -> 3 [label="no", color="black"];
2 [label="prediction: setosa, probability: 1", color="red"];
3 [label="petal_length < 4.871875 ?", color="blue"];
3 -> 6 [label="yes", color="black"];
3 -> 7 [label="no", color="black"];
6 [label="prediction: versicolor, probability: 1", color="red"];
7 [label="prediction: virginica, probability: 1", color="red"];
}
此输入呈现如下:
另请参阅
8 - RF_PREDICTOR_IMPORTANCE
使用平均减少杂质 (MDI) 方法衡量随机森林模型中预测工具的重要性。重要性向量被规范化为总和为 1。
语法
RF_PREDICTOR_IMPORTANCE ( USING PARAMETERS model_name = 'model‑name' [, tree_id = tree‑id] )
参数
model_name
- 标识作为训练结果存储的模型,其中 model‑name 必须为
rf_classifier
或rf_regressor
类型。 tree_id
- 标识要处理的树,0 到 n-1 之间的整数,其中 n 为森林中树的数量。如果忽略此参数,该函数将使用所有树来测量重要性值。
特权
非超级用户:模型上的 USAGE 权限
示例
此示例说明如何使用 RF_PREDICTOR_IMPORTANCE 函数。
=> SELECT RF_PREDICTOR_IMPORTANCE ( USING PARAMETERS model_name = 'myRFModel');
predictor_index | predictor_name | importance_value
-----------------+----------------+--------------------
0 | sepal.length | 0.106763318092655
1 | sepal.width | 0.0279536658041994
2 | petal.length | 0.499198722346586
3 | petal.width | 0.366084293756561
(4 rows)
另请参阅
9 - 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 的行的百分比。
10 - RSQUARED
返回一个表,其中包含回归模型中预测的 R 平方值。
语法
RSQUARED ( targets, predictions ) OVER()
重要
OVER()
子句必须为空。
参数
- targets
- 模型的 FLOAT 响应变量。
- predictions
- 一个 FLOAT 输入列,其中包含响应变量的预测值。
示例
此示例演示了如何对名为 faithful_testing
的输入表执行 RSQUARED
函数。obs
列中显示响应变量的观测值,而 pred
列中显示响应变量的预测值。
=> SELECT RSQUARED(obs, prediction) OVER()
FROM (SELECT eruptions AS obs,
PREDICT_LINEAR_REG (waiting
USING PARAMETERS model_name='myLinearRegModel') AS prediction
FROM faithful_testing) AS prediction_output;
rsq | comment
-------------------+-----------------------------------------------
0.801392981147911 | Of 110 rows, 110 were used and 0 were ignored
(1 row)