常见的评价指标及其计算方法

分类任务

分类任务一般有二分类、多分类和多标签分类。

多分类: 表示分类任务中有多个类别,但是对于每个样本有且仅有一个标签,例如一张动物图片,它只可能是猫,狗,虎等中的一种标签(二分类特指分类任务中只有两个类别)。

多标签: 一个样本可以有多个标签。例如文本分类中,一个文本可以是宗教相关,也可以是新闻相关,所以它就可以有两个标签。

常见的评价指标有:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 score、ROC曲线(Receiver Operating Characteristic Curve)等。

混淆矩阵

        混淆矩阵是数据科学和机器学习中经常使用的用来总结分类模型预测结果的表,用n行n列的矩阵来表示,将数据集中的记录按照“真实的类别”“预测的类别”两个标准进行汇总。以二分类任务为例,混淆矩阵的结构如下:

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)
  • 第一位表示模型预测的是否正确,T(True)表示预测正确,F(False)表示预测错误;
  • 第二位表示模型的预测结果,P(Positive)表示预测为正样本,N(negative)表示预测为负样本;

TP:表示实际为正被预测为正的样本数量;
FP:表示实际为负但被预测为正的样本数量;
FN:表示实际为正但被预测为负的样本的数量;
TN:表示实际为负被预测为负的样本的数量。
另外,TP+FP表示所有被预测为正的样本数量,同理FN+TN为所有被预测为负的样本数量,TP+FN为实际为正的样本数量,FP+TN为实际为负的样本数量。

1.准确率

准确率是分类正确的样本占总样本个数的比例,即:

Accuracy=(TP+TN)/(TP+FN+FP+TN)

准确率指标的缺陷:

        准确率是分类问题中最简单直观的评价指标,但存在明显的缺陷。比如如果样本中有99%的样本为正样本,那么分类器只需要一直预测为正,就可以得到99%的准确率,但其实际性能是非常低下的。也就是说,当不同类别样本的比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。 

2. 精确率(精确度)

精确率指模型预测为正的样本中实际也为正的样本占被预测为正的样本的比例。计算公式为:

Precision=TP/(TP+FP)

3.召回率

召回率指实际为正的样本中被预测为正的样本所占实际为正的样本的比例。计算公式为:

R=TP/(TP+FN)

召回率直观地说是分类器找到所有正样本的能力。召回率最好的值是1,最差的值是0.

 4.P-R曲线

评价一个模型的好坏,不能仅靠精确率或者召回率,最好构建多组精确率和召回率,绘制出模型的P-R曲线。

P-R曲线的横轴是召回率纵轴是精确率。P-R曲线上的一个点代表着:在某一阈值下,模型将大于该阈值的结果判定为正样本,小于该阈值的结果判定为负样本,此时返回结果对应的召回率和精确率。整条P-R曲线是通过将阈值从高到低移动而生成的原点附近代表当阈值最大时模型的精确率和召回率

(图来自西瓜书) 

如果一个模型的P-R曲线被另一个模型的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。

如果两个模型的PR曲线相交,如A和B的性能无法直接判断,我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点或者是F1值。

平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。而F1 = 2 * P * R /( P + R ),同样,F1值越大,我们可以认为该学习器的性能较好。

5.ROC曲线

在ROC曲线中,横轴是假正例率(FPR),纵轴是真正例率(TPR)。

真正例率(True Postive Rate)TPR: TP / (TP+FN),也就是在所有正例当中,正确判断为正例的占的比例,实际就是精度。
负正例率(False Postive Rate)FPR: FP / (FP+TN),也就是在所有负例当中, 错误的判断为正例所占的比例。
ROC曲线也需要相应的阈值才可以进行绘制,原理同上的PR曲线。

下图为ROC曲线示意图,因现实任务中通常利用有限个测试样例来绘制ROC图,因此应为无法产生光滑曲线,如右图所示。

绘图过程:

step1.给定m个正例子,n个反例子,根据学习器预测得分进行排序;

step2.先把分类阈值设为最大,使得所有例子均预测为反例,此时TPR和FPR均为0,在(0,0)处标记一个点;

step3.再将分类阈值依次设为每个样例的预测值,即依次将每个例子划分为正例。设前一个坐标为(x,y),若当前为真正例,对应标记点为(x,y+1/m),若当前为假正例,则标记点为(x+1/n,y),然后依次连接各点。

ROC曲线图中的四个点

第一个点:(0,1),即FPR=0, TPR=1,这意味着FN=0,并且FP=0。这是完美的分类器,它将所有的样本都正确分类。
第二个点:(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。
第三个点:(0,0),即FPR=TPR=0,即FP=TP=0,可以发现该分类器预测所有的样本都为负样本(negative)。
第四个点:(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,ROC曲线越接近左上角,该分类器的性能越好。

AUC值作为评价标准

1) AUC (Area Under Curve)

被定义为ROC曲线下的面积,取值范围一般在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

2)AUC 的计算方法

非参数法:(两种方法实际证明是一致的)

(1)梯形法则:早期由于测试样本有限,我们得到的AUC曲线呈阶梯状。曲线上的每个点向X轴做垂线,得到若干梯形,这些梯形面积之和也就是AUC 。

(2)Mann-Whitney统计量: 统计正负样本对中,有多少个组中的正样本的概率大于负样本的概率。这种估计随着样本规模的扩大而逐渐逼近真实值。

参数法:

(3)主要适用于二项分布的数据,即正反样本分布符合正态分布,可以通过均值和方差来计算。

3)从AUC判断分类器(预测模型)优劣的标准

· AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。

· 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。

· AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。

· AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

注:AUC值越大的分类器,正确率越高。

6.aupr

AUPR是PR曲线下的面积,PR即召回率和准确率组成的曲线图。

准确率(查准率)
P=TP/(TP+FP)

召回率(查全率)

R=TP/(TP+FN)

7.gauc

auc在传统的机器学习二分类中还是很能打的,但是有一种场景,虽然是分类模型,但是却不适用auc,即广告推荐领域

推荐领域使用的CTR(点击率)来作为最终的商用指标,但是在训练推荐模型时,却不用这个指标,用的是GAUC,为什么呢,

因为推荐模型目前比较成熟的模式是训练分类模型,这个分类模型的任务是预测用户是否会点击给定的商品,因此,推荐系统的核心,仍然是一个二分类问题,但是是更细力度的二分类。

总结:传统的AUC可以评判二分类,但是推荐领域要算的是对于每个人的二分类结果

参考:图解AUC和GAUC - 知乎 

8.HR

 含义一:预测结果列表中预测正确的样本占所有样本的比例,即用户想要的项目有没有推荐到,强调预测的“准确性”。

N,表示用户总数量。

hits(i),表示第i个用户访问的值是否在推荐列表中,是则为1,否则为0。

含义二:命中率(Hit Rate,HR),它反映的是在推荐序列中是否包含了用户真正点击的item。

N表示推荐次数,hit()函数表示是否命中,即用户选择的item是否在推荐序列中,存在则为1,反之则为0。

9.NDCG

(归一化折损累计增益(Normalized Discounted Cumulative Gain))

含义:表示归一化加入位置信息度量计算的前p个位置累计得到的效益。即,关心找到的这些项目,是否放在用户显眼的位置里,即强调顺序性。

参考连接:

全面了解ROC曲线 | Public Library of Bioinformatics

图解AUC和GAUC_这是一个快乐的人的博客-CSDN博客

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
神经网络的评价指标可以通过多种方式进行计算和评估。以下是一些常见的神经网络评价指标及其在Python中的实现方法: 1. 准确率(Accuracy):准确率是最常用的评价指标之一,表示分类正确的样本在所有样本中所占的比例。 ```python from sklearn.metrics import accuracy_score y_true = [0, 1, 1, 0, 1] y_pred = [0, 1, 0, 0, 1] accuracy = accuracy_score(y_true, y_pred) ``` 2. 精确率(Precision)和召回率(Recall):精确率和召回率常用于处理不平衡类别问题。精确率表示预测为正类别的样本中,真正为正类别的比例;召回率表示真正为正类别的样本中,被正确预测为正类别的比例。 ```python from sklearn.metrics import precision_score, recall_score precision = precision_score(y_true, y_pred) recall = recall_score(y_true, y_pred) ``` 3. F1-Score:F1-Score是精确率和召回率的调和平均值,综合考虑了两者的性能。 ```python from sklearn.metrics import f1_score f1 = f1_score(y_true, y_pred) ``` 4. 混淆矩阵(Confusion Matrix):混淆矩阵可以展示分类器的分类结果,包括真正例(True Positive)、真负例(True Negative)、假正例(False Positive)和假负例(False Negative)。 ```python from sklearn.metrics import confusion_matrix confusion_matrix = confusion_matrix(y_true, y_pred) ``` 以上是一些常见的神经网络评价指标及其在Python中的实现方法,根据你的具体任务需求,可以选择适合的指标进行评估。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值