当前位置:   article > 正文

多分类f1分数_所以多分类情况下sklearn的f1值到底是怎么计算的

sklearn multi f1

已经很久没有更新新的文章啦,最近在弄GCN,很多东西的理解都还没有很透彻,所以也不太好发,不过就在今天“南归”的时候刷知乎,刷到了这么一个朋友( @苏小胖与喵 )的疑问:

这。。。么简单的问题。。。。

我还真没思考过。。。。调包侠调sklearn习惯了,殊不知岁月静好有人为我负重前行,所以到底哪种计算方式才是正确的我不太好说,不过sklearn的方式是值得探究探究。

于是,就直接做了个小实验:

大致思路如下:

当前只有两种已知计算方式:先计算macro_precision和macro_recall,之后将二者带入f1计算公式中

直接计算每个类的f1并取均值

因此我们只需要验证其中一种就行啦~反正二者答案不同,首先我们构建数据集:

import numpy as np

#三分类问题

trueY=np.matrix([[1,2,3,2,1,3,1,3,1,1,3,2,3,2]]).T

testY=np.matrix([[1,2,3,2,2,3,1,3,1,1,3,2,3,2]]).T

然后,调用sklearn获取这些值的macro_f1值(变量oriF1)

from sklearn.metrics import f1_score,precision_score,recall_score

oriF1=f1_score(trueY,testY,average="macro")

print("sklear

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/142923
推荐阅读
相关标签
  

闽ICP备14008679号