常用评价指标

FP、FN、TP、TN

TP: true positive, 预测是阳性,实际也是正例。
TN: true negative, 预测是阴性,实际也是负例。
FP: false positive, 预测是阳性,实际是负例。
FN: false negative, 预测是阴性,实际是正例。

准确率

准确率(Accuracy):
  模型判断正确的数据 (TP+TN) 占总数据的比例。
  Accuracy = (TP+TN)/ALL
精确率(Precision)
  又称查准率,针对模型判断出的所有正例 (TP+FP) 而言,其中真正例 (TP) 占的比例。
  Precision = TP/(TP+FP)
召回率(Recall)
  又称查全率,针对数据集中的所有正例 (TP+FN) 而言,模型正确判断出的正例 (TP) 占数据集中所有正例的比例。
  Recall = TP/(TP+FN)
灵敏度(Sensitive)
  所有正例中被分对的比例,衡量了分类器对正例的识别能力。
  Sensitive = TP/P
特效度(Specificity)
  所有负例中被分对的比例,衡量了分类器对负例的识别能力。
  Specificity = TN/N
F1分数
F1分数 = 2*查准率*查全率 / (查准率 + 查全率)
P-R(查准率-查全率)曲线:遍历0到1之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而得到了这条曲线。

AUC(Area Under Curve)

  AUC 为 ROC 曲线下与坐标轴围成的面积,取值范围在 0.5 和 1 之间。AUC 越接近 1.0,检测方法真实性越高;等于 0.5 时无应用价值。
  ROC 为受试者工作特征曲线 (receiver operating characteristic curve),它是根据一系列不同的二分类阈值,以真阳性率(灵敏度,TP/P)为纵坐标,假阳性率(1-特异度,FP/N)为横坐标绘制的曲线。

from sklearn import metrics
def aucfun(act, pred):
	fpr,tpr, thresholds = metrics.roc_curve(act, pred, pos_label=1)
	return metrics.auc(fpr, tpr)

  假设有 M 个正样本和 N 个负样本,从M个正样本中随机抽取一个样本 a,其 prob 为 p_a, 然后从 N 个负样本中随机抽取一个样本 b,其 prob 为p_b。这样一共有 MN 个抽取结果,每个抽取结果是一个 pair (p_a, p_b)。假设所有抽取结果中有 K 个结果满足 p_a > p_b,那么 AUC=K/(MN) 。
在这里插入图片描述

  从统计意义去计算,所有的正负样本对中,正样本排在负样本前面占样本对数的比例即为 AUC。AUC 对正负样本比例不敏感。

def calAUC(prob,labels):
    f = list(zip(prob,labels))
    rank = [values2 for values1,values2 in sorted(f,key=lambda x:x[0])]
    rankList = [i+1 for i in range(len(rank)) if rank[i]==1]
    posNum = 0
    negNum = 0
    for i in range(len(labels)):
        if(labels[i]==1):
            posNum+=1
        else:
            negNum+=1
    auc = (sum(rankList)- (posNum*(posNum+1))/2)/(posNum*negNum)
    return auc

代码分析:如果存在阈值完全分开正负样本,则按照prob排序后,前面label列表全是0后面全是1,这时候1的坐标和为P*((N+1)+(N+P))/2。坐标和的变化,等于出现的逆序数量,故而想求实际正序的比例,等同于(MN-逆序数)/MN,而逆序数=理想坐标和-实际坐标和。所以AUC=(MN-理想坐标和+实际坐标和)/MN=(MN-P*((N+1)+(N+P))/2+实际坐标和)/MN=(实际坐标和-P(P+1)/2)/MN。
例:按照预测概率排序后是标签1010,AUC=3/4=0.75。
ROC/AUC

IoU(Intersection over Union)

交并比计算的是 “预测的边框” 和 “真实的边框” 的交集和并集的比值。

def iou(box1, box2):
    '''
    二维 iou 计算
    box:[top, left, bottom, right]
    '''
    in_h = min(box1[2], box2[2]) - max(box1[0], box2[0])
    in_w = min(box1[3], box2[3]) - max(box1[1], box2[1])
    inter = 0 if in_h<0 or in_w<0 else in_h*in_w
    union = (box1[2] - box1[0]) * (box1[3] - box1[1]) + \
            (box2[2] - box2[0]) * (box2[3] - box2[1]) - inter
    iou = inter / union
    return iou

mAP(mean Average Precision)

在这里插入图片描述
mAP 衡量学出的模型在所有类别上的好坏,取所有 AP 的平均值得到 mAP。

正逆序

当样本的 label 之间存在序关系时,由样本间两两组成的 pair,若模型预测结果的序关系与 label 之间的序关系相同,称为正序;若模型预测结果的序关系与 label 之间的序关系相反,称为逆序。正逆序即为正序数量与逆序数量的比值。
在这里插入图片描述
在这里插入图片描述

模型排序中的逆序对计算

DSI(Dice Coefficient Index)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值