博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
评价指标的计算:accuracy、precision、recall、F1-score等
阅读量:4628 次
发布时间:2019-06-09

本文共 1776 字,大约阅读时间需要 5 分钟。

 记正样本为P,负样本为N,下表比较完整地总结了准确率accuracy、精度precision、召回率recall、F1-score等评价指标的计算方式:

 (右键点击在新页面打开,可查看清晰图像)

简单版:

precision = TP / (TP + FP)   # 预测为正的样本中实际正样本的比例recall = TP / (TP + FN)      # 实际正样本中预测为正的比例accuracy = (TP + TN) / (P + N)F1-score = 2 / [(1 / precision) + (1 / recall)]

 

from sklearn.metrics import accuracy_score, precision_score, recall_scoredef cul_accuracy_precision_recall(y_true, y_pred, pos_label=1):    return {
"accuracy": float("%.5f" % accuracy_score(y_true=y_true, y_pred=y_pred)), "precision": float("%.5f" % precision_score(y_true=y_true, y_pred=y_pred, pos_label=pos_label)), "recall": float("%.5f" % recall_score(y_true=y_true, y_pred=y_pred, pos_label=pos_label))}

 

***********************************************************************************************************************************

(下面写的内容纯属个人推导,如有错误,望指正)

一般来说,精度和召回率是针对具体类别来计算的,例如:

precision(c1) = TP(c1) / Pred(c1) = TP(c1) / [TP(c1) + FP(c2=>c1) + FP(c3=>c1)]recall(c1) = TP(c1) / True(c1) = TP(c1) / [TP(c1) + FP(c1=>c2) + FP(c1=>c3)]

 

有时需要衡量模型的整体性能,有:

total_precision = sum[TP(ci)] / sum[Pred(ci)] = [TP(c1) + TP(c2) + TP(c3)] / len(Pred)total_recall = sum[TP(ci)] / sum[True(ci)] = [TP(c1) + TP(c2) + TP(c3)] / len(True)total_accuracy = sum[TP(ci)] / total_num = [TP(c1) + TP(c2) + TP(c3)] / total_num

其中i取值自[1,2,...,n]

到这里很惊讶地发现,针对整体而言,一般有 len(Pred) == len(True) == total_num 

也就是说, total_precision == total_recall == total_accuracy ,所以衡量模型整体性能用其中一个就可以了

 

针对概率输出型的的模型,很多时候会通过设置阈值梯度,得到映射关系 F(threshold) ==> (precision, recall) 

在卡阈值的情况下,除了total_precision,还可以计算一个广义召回率

generalized_recall =  sum[TP(ci)] / sum[True(ci)] = [TP(c1) + TP(c2) + TP(c3)] / [len(True) + OutOfThreshold]

其中OutOfThreshold表示因低于指定阈值而被筛选去掉的样本数。

 

参考:

转载于:https://www.cnblogs.com/bymo/p/8618191.html

你可能感兴趣的文章
关于javascript实现的网站页面侧边悬浮框"抖动"问题
查看>>
linux_命令格式和命令提示符
查看>>
Cocos2d-X-3.0之后的版本的环境搭建
查看>>
when case group by 的用法集合
查看>>
洛谷P1908 逆序对
查看>>
转义符
查看>>
poj 1019
查看>>
asp.net mvc上传文件
查看>>
bitmq集群高可用测试
查看>>
主成分分析(PCA)原理详解
查看>>
短信验证接口网址
查看>>
Geohash距离估算
查看>>
Demon_背包系统(实现装备栏,背包栏,可以切换装备)
查看>>
记录:一次数据库被恶意修改配置文件的问题
查看>>
redis 持久化
查看>>
解决Jupyter notebook[import tensorflow as tf]报错
查看>>
Windows平台下使用ffmpeg和segmenter实现m3u8直播点播
查看>>
python网络画图——networkX
查看>>
ubuntu16.04文件形式安装mongodb
查看>>
SpringBoot------ActiveMQ安装
查看>>