内容都为转载.
From https://blog.argcv.com/articles/1036.c
From http://blog.csdn.net/Relocy/article/details/51453950
Case:
假如某个班级有男生80人,女生20人,共计100人.目标是找出所有女生.
现在某人挑选出50个人,其中20人是女生,另外还错误的把30个男生也当作女生挑选出来了.
作为评估者的你需要来评估(evaluation)下他的工作。
按照前面例子,我们需要从一个班级中的人中寻找所有女生,如果把这个任务当成一个分类器的话,那么女生就是我们需要的,而男生不是,所以我们称女生为"正类",而男生为"负类".
相关(Relevant),正类 | 无关(NonRelevant),负类 | |
被检索到(Retrieved) | true positives(TP 正类判定为正类,例子中就是正确的判定"这位是女生") | false positives(FP 负类判定为正类,"存伪",例子中就是分明是男生却判断为女生,当下伪娘横行,这个错常有人犯) |
未被检索到(Not Retrieved) | false negatives(FN 正类判定为负类,"去真",例子中就是,分明是女生,这哥们却判断为男生--梁山伯同学犯的错就是这个) | true negatives(TN 负类判定为负类,也就是一个男生被判断为男生,像我这样的纯爷们一准儿就会在此处) |
true positives: positive 表示他判定为女生。 true表示,他的判定是对的。 TP=20
false positives: positive 表示他判定为女生。 false表示,他的判定是错的。 FP=30
false negatives: negative 表示他判定为男生。 false表示,他的判定是错的。 FN=0
true negatives: negative 表示他判定为男生。 true表示, 他的判定是对的。 TN=50
通过这张表,我们可以很容易得到这几个值: TP=20 FP=30 FN=0 TN=50
准确率 (Accuracy) 的公式是 A= (TP + TN) / total
在例子中就是,(20女生 + 没有被检索的50男生) / 总人数100 = 70%
精确率(precision)的公式是 P= TP / (TP + FP). 它计算的是所有"正确被检索的item(TP)"占所有"实际被检索到的(TP+FP)"的比例.
在例子中就是希望知道此君得到的所有人中,正确的人(也就是女生)占有的比例.所以其precision也就是40%(20女生/(20女生+30误判为女生的男生)).
召回率(recall)的公式是R= TP / (TP + FN). 它计算的是所有"正确被检索的item(TP)"占所有"应该检索到的item(TP+FN)"的比例。
在例子中就是希望知道此君得到的女生占本班中所有女生的比例,所以其recall也就是100%(20女生/(20女生+ 0 误判为男生的女生))
F1 score = 2PR/(P+R) . 即精确率P和召回率R的调和平均值。
在例子中就是, 2 * 0.4 * 1 / (0.4 + 1) = 0.5714