python - 为什么 sklearns 分类报告的“加权”平均 F1 分数与公式计算的 F1 分数不同?
问题描述
我尝试使用 sklearns 分类报告计算“加权”f1 分数,它似乎与使用F1 = 2*((p*r)/(p+r))
. 例如:
查看此处找到的示例查看加权平均线:
precision recall f1-score support
weighted avg 0.70 0.60 0.61 5
当计算出来时,我得到:0.646153846 = 2*((0.70*0.60)/(0.70+0.60))
这与0.61
. 为什么是这样?这个 f1 分数是如何计算的?
解决方案
F1 分数,即二元分类模型中正类的 F1 分数。这计算为F1 = 2*((p*r)/(p+r)
加权 F1 分数是一种特殊情况,我们不仅报告正类的分数,还报告负类的分数。这在我们有不平衡类的情况下很重要。因为即使我们的模型一直都预测为阳性,简单的 F1 分数也给出了很好的值。
所以加权平均值也考虑了这两个类的样本数,不能用你上面提到的公式计算。
希望能帮助到你。
推荐阅读
- sql - SQL查询输出超链接
- apache-spark - pyspark.sql.functions 的 unix_timestamp 仅对大多数值变为空
- python - 烧瓶、蓝图碰撞和 Pytest
- linux - 如何在 Linux/ARM 系统上强制从用户空间分配新的页表?
- authentication - omniauth ldap 模块中的 ldap 过滤器在话语中不起作用
- phpunit - 为服务类编写 phpunit 测试函数
- dart - Flutter 中的丰富链接预览
- testing - 如何在jmeter的循环控制器中使用jsr223变量
- android - 如何使用子选项创建动态菜单
- javascript - SweetAlert2:如何从反应组件中取回值?