accurcy,precision,recall,F1指标值分析

在自然语言任务中,评价模型性能经常会用到accuracy、precision、recall、F1等指标,在二分类任务中,指标值计算一般不会出现问题,而在多分类任务中特别容易出现问题,比如四个指标值相等,这个时候就要考虑宏平均和微平均。下面从混淆矩阵开始,一步一步讲解指标值的计算,定能解你心头疑惑。

1. 混淆矩阵

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。
在二分类问题中,根据真实值和预测值划分:
真正类(True Positive,TP):真实类别为正例,预测类别为正例。
假正类(False Positive,FP):真实类别为负例,预测类别为正例。
真负类(True Negative,TN):真实类别为负例,预测类别为负例。
假负类(False Negative,FN):真实类别为正例,预测类别为负例。
混淆矩阵(Confusion Matrix)如下表所示:
在这里插入图片描述
根据混淆矩阵各个指标值的计算:
准确率(Accuracy):指分类器正确分类的样本数与总样本数之比。

Accuracy

精确率(Precision):指分类正确的正样本个数(TP)占分类器判定为正样本的样本个数(TP+FP)的比例。
在这里插入图片描述
召回率(Recall):指分类正确的正样本个数(TP)占真正的正样本个数(TP+FN)的比例。
在这里插入图片描述
F1:指精确率和召回率的调和平均值。
在这里插入图片描述
对于二分类任务使用上述公式计算或者使用已封装的函数,如slearn中的accuracy_score、precision_score、recall_score、f1_score、classification_report等,seqeval.metrics.classification_report等。

2. 多分类指标计算

如果只有一个二分类混淆矩阵,可以用P、R、F指标进行评价,但是当我们在n个二分类混淆矩阵上要综合考察评价指标的时候就会用到宏平均和微平均。
宏平均(Macro-averaging),是先对每一个类统计指标值,然后再对所有类求算术平均值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
微平均(Micro-averging),是对数据集中的每一个实例不分类进行统计建立全局混淆矩阵,然后计算相应指标。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
宏平均和微平均的使用:
sklearn.metrics.precision中参数average选择micro和macro,其他类似。

宏平均和微平均的区别

宏平均的计算方法独立于不同类别,将每个类别的P、R、F值单独计算出来,然后将所有类别的度量值直接平均,因此它将各个类别平等对待。
微平均会结合不同类别的贡献大小来计算平均值。
所以在多分类问题中,如果存在数据不平衡问题,则使用微平均得到的效果更加可信。

3. Accuracy=Precision=Recall=F1问题

在多分类任务中,偶然会出现四个指标相同的问题。
比如情感分类问题,判断情感极性positive,negative,neural,三个类别,在Micro-averging中计算指标,计算公式如下:
在这里插入图片描述
在这里插入图片描述
出现四个指标值一样的情况是因为,在某一类中被判断成FP的样本,在其他类中一定是FN的样本。
此时,Micro-precision和Micro-recall的数值都等于Accuracy,因为它们计算了对角线样本数和总样本数的比值。

解决方法

使用宏平均(Macro-averaging),这种方法对不同的类分别计算评估指标,然后加起来求平均。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hj_caas

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值