nuget server logo nuget api documents
↑

API Docs / SMRUCC.genomics.Analysis.HTS.P-NET / Metrics

Metrics

Full name SMRUCC.genomics.Analysis.HTS.P_NET.Metrics Assembly SMRUCC.genomics.Analysis.HTS.P-NET Members 8

二分类模型的评估指标

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

SMRUCC.genomics.Analysis.HTS.P_NET.Metrics

02 Methods

NameOverloadsSummary
AUC 1 计算 ROC 曲线下面积(AUC)
AUPRC 1 计算 PR 曲线下面积(AUPRC,即平均精度 Average Precision)
ConfusionMatrix 1 计算给定阈值下的混淆矩阵
Accuracy 1 计算准确率
Precision 1 计算精确率(查准率)
Recall 1 计算召回率(查全率、真阳性率)
F1 1 计算 F1 分数(精确率与召回率的调和平均)
Evaluate 1 一次性计算全部评估指标

03 Members

method AUC #
AUC(Double(), Double())

计算 ROC 曲线下面积(AUC)

Remarks

采用 Mann-Whitney U 统计量的等价形式: 先把所有样本按照分数升序排序(并列值取平均秩), 之后 AUC = (R_pos - n_pos(n_pos + 1) / 2) / (n_pos · n_neg)。

Parameters
NameTypeDescription
labelsDouble()

真实标签数组,元素取值为 0 或者 1

scoresDouble()

模型输出的预测分数(概率)

Returns

位于 [0, 1] 区间内的 AUC 值;若样本中只存在单一类别则返回 0.5

method AUPRC #
AUPRC(Double(), Double())

计算 PR 曲线下面积(AUPRC,即平均精度 Average Precision)

Remarks

计算方式为把样本按照预测分数降序排列,之后逐个把样本纳入预测为正例的集合, 累加 (recall_n - recall_(n-1)) · precision_n。

Parameters
NameTypeDescription
labelsDouble()

真实标签数组,元素取值为 0 或者 1

scoresDouble()

模型输出的预测分数(概率)

Returns

位于 [0, 1] 区间内的 AUPRC 值

method ConfusionMatrix #
ConfusionMatrix(Double(), Double(), Double)

计算给定阈值下的混淆矩阵

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

长度为 4 的整数数组,依次为 TP、FP、TN、FN

method Accuracy #
Accuracy(Double(), Double(), Double)

计算准确率

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

准确率

method Precision #
Precision(Double(), Double(), Double)

计算精确率(查准率)

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

精确率,分母为 0 时返回 0

method Recall #
Recall(Double(), Double(), Double)

计算召回率(查全率、真阳性率)

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

召回率,分母为 0 时返回 0

method F1 #
F1(Double(), Double(), Double)

计算 F1 分数(精确率与召回率的调和平均)

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

F1 分数,分母为 0 时返回 0

method Evaluate #
Evaluate(Double(), Double(), Double)

一次性计算全部评估指标

Parameters
NameTypeDescription
labelsDouble()

真实标签数组

scoresDouble()

模型输出的预测分数

thresholdDouble

判定为正例的阈值

Returns

评估结果对象