TP、TN、FP、FN、Recall、Miss Rate、MCC、F1 Score 等指标计算

对一个二分类问题,实际取值只有正、负两例,而实际预测出来的结果也只会有0,1两种取值。如果一个实例是正类,且被预测为正类,就是真正类(True Positive),如果是负类,被预测为正类,为假正类(False Positive),如果是负类被预测成负类。称为真负类(True Negative),正类被预测为负类称为假负类(False Negative)。如图所示:
这里写图片描述
从列联表引入两个新名词。其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP / (TP + FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是负正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR=TN / (FP + TN) = 1 − FPR。

False positive rate (α) = FP / (FP + TN) = 1 − specificity
False negative rate (β) = FN / (TP + FN) = 1 − sensitivity
Power = sensitivity = 1 − β
Likelihood ratio positive = sensitivity / (1 − specificity)
Likelihood ratio negative = (1 − sensitivity) / specificity
其他各种参数:


condition positive (P)
the number of real positive cases in the data
condition negatives (N)
the number of real negative cases in the data

true positive (TP)
eqv. with hit
true negative (TN)
eqv. with correct rejection
false positive (FP)
eqv. with false alarm, Type I error
false negative (FN)
eqv. with miss, Type II error

sensitivity, recall, hit rate, or true positive rate (TPR) specificity or true negative rate (TNR) precision or positive predictive value (PPV) negative predictive value (NPV) miss rate or false negative rate (FNR) fall-out or false positive rate (FPR) false discovery rate (FDR) false omission rate (FOR) accuracy (ACC)

F1 score
is the harmonic mean of precision and sensitivity
Matthews correlation coefficient (MCC) Informedness or Bookmaker Informedness (BM) Markedness (MK)

Sources: Fawcett (2006), Powers (2011), and Ting (2011) [6] [3] [7]



参考维基百科: https://en.wikipedia.org/wiki/Matthews_correlation_coefficient#cite_note-Powers2011-2


  • 6
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在PyTorch中,可以使用一些函数和类来计算精度、回归率和F1 score指标。 对于分类问题中的精度,可以通过以下步骤来计算: 1. 首先,需要将模型预测的结果转化为类别标签。可以使用torch.argmax()函数来获取每个样本预测概率最大的类别。 2. 然后,将预测的类别与真实标签进行比较,以确定模型预测的准确性。可以使用torch.eq()函数来判断预测结果是否与真实标签相等。 3. 最后,计算预测准确的样本数占总样本数的比例,即精度。可以使用torch.mean()函数来计算平均精度。 以下是一个示例代码片段,演示了如何计算精度: ```python # 导入必要的模块 import torch import torch.nn.functional as F # 假设有模型输出和真实标签 outputs = torch.tensor([[0.2, 0.8], [0.6, 0.4], [0.3, 0.7]]) labels = torch.tensor([1, 0, 1]) # 获取预测类别 predicted_labels = torch.argmax(outputs, dim=1) # 计算精度 accuracy = torch.mean(torch.eq(predicted_labels, labels).float()) print(accuracy.item()) # 输出精度值 ``` 对于二分类问题中的回归率,可以使用混淆矩阵来计算。可以使用Sklearn库中的metrics模块来计算回归率。 以下是一个示例代码片段,演示了如何使用混淆矩阵计算回归率: ```python from sklearn.metrics import confusion_matrix, recall_score # 假设有模型输出和真实标签 outputs = torch.tensor([1, 0, 1, 1]) labels = torch.tensor([1, 0, 0, 1]) # 获取预测类别 predicted_labels = torch.round(torch.sigmoid(outputs)).int() # 计算混淆矩阵 conf_matrix = confusion_matrix(labels.numpy(), predicted_labels.numpy()) # 计算回归率 recall = recall_score(labels.numpy(), predicted_labels.numpy()) print(conf_matrix) # 输出混淆矩阵 print(recall) # 输出回归率 ``` F1 score是精确率和召回率的加权平均,可以使用Sklearn库中的metrics模块来计算。 以下是一个示例代码片段,演示了如何计算F1 score: ```python from sklearn.metrics import f1_score # 假设有模型输出和真实标签 outputs = torch.tensor([0.2, 0.7, 0.3, 0.8]) labels = torch.tensor([0, 1, 1, 1]) # 获取预测类别 predicted_labels = torch.round(torch.sigmoid(outputs)).int() # 计算F1 score f1 = f1_score(labels.numpy(), predicted_labels.numpy()) print(f1) # 输出F1 score ``` 以上示例代码演示了在PyTorch中计算精度、回归率和F1 score指标的方法。根据具体问题的要求和使用的库可以适当进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值