当前位置:  开发笔记 > 人工智能 > 正文

如何在多类分类中为每个类计算F1度量?

如何解决《如何在多类分类中为每个类计算F1度量?》经验,为你挑选了1个好方法。

我使用SciKit作为库来处理分类算法,如:NB,SVM.

这是" SPAMHAM " 电子邮件的一个非常好的和精细的二进制分类实现:

    confusion += confusion_matrix(test_y, predictions)
    score = f1_score(test_y, predictions, pos_label=SPAM)
   //note in my case 3-classes I do not need to set [pos_label]

如果我有三个类,如{SPAM,HAM,NORMAL}而不是两个,那么:我如何调整该代码以找到每个类的F1-Score以及所有类的平均值.



1> CAFEBABE..:

这里的问题是F1测量对多类问题没有多大意义.它是精确度和召回之间的调和平均值.

精确度是(随机选择的)正分类实例为正的概率.

召回是(随机选择的)阳性实例被分类为阳性的概率.

这些定义本质上是二进制的.通常我会分别为每个班级提供F1测量.这使您还可以决定哪种类型的故障是可以接受的.根据我的个人经验,我实际上会给予精确和回忆.在您的示例中,将火腿电子邮件分类为垃圾邮件会非常有害.因此,SpAM上的Precision比召回更重要.

为了更全面的介绍也包含了一系列措施,你也可以检查http://rali.iro.umontreal.ca/rali/sites/default/files/publis/SokolovaLapalme-JIPM09.pdf

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有