博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三个练习题帮助理解“精度" "召回率""F1值"
阅读量:6036 次
发布时间:2019-06-20

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

hot3.png

分类算法评估方法练习

对于模型的考量有很多参数,最重要的是准确率,精度,召回率等,还有经常听到的F1值, 如果是那种提取词的算法,比如提取出日期,这种怎么算正确率呢?

精确率 = 提取正确的结果数量/ 提取出来的所有数量

召回率 = 提取正确的结果数量/ 数据集中正确结果的所有数量

F1值 = 2准确率召回率/(准确率+召回率)

F1值:兼顾了准确率和召回率;

为了加深印象,自己搞几个练习做下:


练习一:

总共有100个样本,50个是Yes,50个是No;

机器使用算法计算完后得到的结果如下:

55个是Yes(其中45个与实际相符,10个与实际不符); 

45个是No(其中40个与实际相符,5个与实际不符);

试计算这个算法的各个指标:

解:

  |   Yes   |  No     |	Yes | TP = 45 | FN =  5 | P = 50	No  | FP = 10 | TN = 40 | N = 50 	    | P' = 55 | N' = 45 | P+N = 100

正确率:(TP+TN )/(P+N)  = 85 /100 = 0.85

精  度(precision): TP/(TP+FP) = 45/55= 0.818

召回率(recall):TP/P = 45/50 = 0.9

综合分类率:

F1 = 2 * (precision) * recall/(precision+recall)	   = 2 * 0.818 * 0.9/(0.818+0.9)	   = 0.857

练习二:

总共有100个样本,50个是Yes,50个是No;

机器算法优化计算完后得到的结果如下:

55个是Yes(其中50个与实际相符,5个与实际不符);

45个是No(其中45个与实际相符,0个与实际不符);

(这是一种常见的情况,目的是尽可能多地包含正确的结果)

试计算这个算法的各个指标:

解:

|   Yes   |  No     |	Yes | TP = 50 | FN =  0 | P = 50	No  | FP =  5 | TN = 45 | N = 50 	    | P' = 55 | N' = 45 | P+N = 100

正确率:(TP+TN )/(P+N)  = 95 /100 = 0.95

精  度(precision): TP/(TP+FP) = 50/55= 0.909

召回率(recall):TP/P = 50/50 = 1

综合分类率:

F1 = 2 * (precision) * recall/(precision+recall)   = 2 * 0.909 * 1/(0.909+1)   = 0.952

总结:

精度达到0.91,召回率达到1,此时F值才可能达到0.95

召回率=1也就是首先要确保所有正确的结果都被找到;

精度0.91也就是找出的结果可以包含9%的错误结果;


练习三:

总共有100个样本,50个是Yes,50个是No;

机器算法优化计算完后得到的结果如下:

45个是Yes(其中45个与实际相符,0个与实际不符);

55个是No(其中50个与实际相符,5个与实际不符);

(这也是一种常见的情况,就是哪怕找到结果少但确保找到的结果全是正确的;)

试计算这个算法的各个指标:

解:

    |   Yes   |  No     |	Yes | TP = 45 | FN =  5 | P = 50	No  | FP =  0 | TN = 50 | N = 50 	    | P' = 45 | N' = 55 | P+N = 100

正确率:(TP+TN )/(P+N)  = 95 /100 = 0.95

精  度(precision): TP/(TP+FP) = 45/45 = 1

召回率(recall):TP/P = 45/50 = 0.9

综合分类率:

F1 = 2 * (precision) * recall/(precision+recall)	   = 2 * 1 * 0.9/(1+0.9)	   = 0.947

总结:

如果精度达到1,百分百正确的情况下,召回率能达到0.9,F1值同样也能接近0.95;

召回率达到0.91时F1=0.952,此时也能超过0.95

总结

学习总结:

精度和召回率从两个维度描述了算法的准确程度, 通过F1值可以更清晰地了解如何达到最终的目标,

也就是有两种思路:

1、宁可少找一些,但要保证找出的结果都是正确的;

2、宁可多找一些,但是要把正确的都包含进去;

在一些场合下思路2有的时候会更容易一些;

转载于:https://my.oschina.net/u/1156588/blog/3005926

你可能感兴趣的文章
control.add()
查看>>
p点到(a,b)点两所在直线的垂点坐标及p点是否在(a,b)两点所在直线上
查看>>
GridView强制换行与自动换行
查看>>
51Nod 1003 阶乘后面0的数量(数学,思维题)
查看>>
Sublime text3中配置Github
查看>>
Getting Started with iOS Development Part10:Customizing your Mobile target's Splash screen
查看>>
asp.net C# MVC 提交表单后清空表单
查看>>
备份软件 FreeFileSync 怎么用
查看>>
Asp.net,C# 加密解密字符串
查看>>
网页视频播放器插件源码
查看>>
CentOS7 睡眠 休眠 关机 电源
查看>>
SqlServer里DateTime转字符串
查看>>
2019-4-23 plan
查看>>
固定弹层叉掉
查看>>
[编解码] 关于base64编码的原理及实现
查看>>
WinDbg配置和使用基础
查看>>
转:Object-Runtime的基本数据类型
查看>>
JMJS系统总结系列----Jquery分页扩展库(五)
查看>>
Excel技巧之——英文大小写转换(转)
查看>>
Google 翻译的妙用
查看>>