多分类情况下的precision、recall和f1

2019-05-29  本文已影响0人  全村希望gone

前言

一直在用的代码里面可以测出上面三个值,我就一直没细看,只是不断地加入自己的代码,想要提高precision,结果precision真的提高了,而且提高了还不止一点两点,让我有点害怕,于是想起来看一下这些评价指标是如何计算出来的。

二分类情况

是不是经常看见如下类似的图?这是二分类的图,假设只有正类和负类,True和False分别表示对和错;Positive和Negative分别表示预测为正类和负类。

那么

所以precision就表示:被正确预测的Positive样本 / 被预测为Positive的样本总数

precision公式 同理,recall就表示:被正确预测的Positive样本 / 实际为Positive的样本总数 recall公式 F1是调和平均值,精准率和召回率只要有一个比较小的话,F1的值也会被拉下来: F1公式

多分类情况

其实和二分类情况很类似,例子如下 多分类实例
昨天写这blog的时候我还不知道多分类的F1 score有两种常用的计算方式,一个是Micro,一个是Macro,前者和二分类类似,也和上述的例子吻合(将例子中的precision和recall代入到F1公式中,得到的就是Micro下的F1值),而Macro情况下计算F1需要先计算出每个类别的F1值,然后求平均值。如下 公式 Macro情况下上述例子的计算 IMG_5664.JPG

参考资料

[1] sklearn中 F1-micro 与 F1-macro区别和计算原理

上一篇 下一篇

猜你喜欢

热点阅读