二分类模型的评估指标
Metrics
00 Remarks
论文在评估 P-NET 时使用了 AUC、AUPRC、accuracy、F1、precision 与 recall 等一整套指标:
- AUC 基于整条 ROC 曲线,这里采用 Mann-Whitney U 统计量的等价形式计算,并对并列值做秩修正;
- AUPRC 采用平均精度(Average Precision)的计算方式,对类别不平衡的场景比 AUC 更敏感;
- 点估计指标(accuracy / F1 / precision / recall)在给定阈值之后由混淆矩阵直接计算。
论文中对不同指标所采用的显著性检验(DeLong 检验、Bootstrap 检验、t 检验等) 不在本模块的实现范围之内。
01 Syntax
02 Methods
03 Members
Double(), Double())计算 ROC 曲线下面积(AUC)
采用 Mann-Whitney U 统计量的等价形式: 先把所有样本按照分数升序排序(并列值取平均秩), 之后 AUC = (R_pos - n_pos(n_pos + 1) / 2) / (n_pos · n_neg)。
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组,元素取值为 0 或者 1 |
scores | Double() | 模型输出的预测分数(概率) |
位于 [0, 1] 区间内的 AUC 值;若样本中只存在单一类别则返回 0.5
Double(), Double())计算 PR 曲线下面积(AUPRC,即平均精度 Average Precision)
计算方式为把样本按照预测分数降序排列,之后逐个把样本纳入预测为正例的集合, 累加 (recall_n - recall_(n-1)) · precision_n。
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组,元素取值为 0 或者 1 |
scores | Double() | 模型输出的预测分数(概率) |
位于 [0, 1] 区间内的 AUPRC 值
Double(), Double(), Double)计算给定阈值下的混淆矩阵
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
长度为 4 的整数数组,依次为 TP、FP、TN、FN
Double(), Double(), Double)计算准确率
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
准确率
Double(), Double(), Double)计算精确率(查准率)
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
精确率,分母为 0 时返回 0
Double(), Double(), Double)计算召回率(查全率、真阳性率)
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
召回率,分母为 0 时返回 0
Double(), Double(), Double)计算 F1 分数(精确率与召回率的调和平均)
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
F1 分数,分母为 0 时返回 0
Double(), Double(), Double)一次性计算全部评估指标
| Name | Type | Description |
|---|---|---|
labels | Double() | 真实标签数组 |
scores | Double() | 模型输出的预测分数 |
threshold | Double | 判定为正例的阈值 |
评估结果对象