machine-learning - 目标标签仅包含允许标签的子集时的 F1 分数计算
问题描述
我有一个三级分类问题。
我的预测标签由所有三个类别组成。
但是,我的目标标签只有三个类别中的两个。
例如:
predicted = [1,1,2,3,2,1]
target = [1,1,2,2,2,1]
在这种情况下,我应该如何计算 F1 分数?
我目前正在使用sklearn
平均功能f1_score
。
但这会导致上述情况的 F1 得分值较低。macro
解决方案
f1_score
提供了一个名为的参数labels
,让您可以定义一组标签以包含在average != 'binary'
.
例如,如果您只对分类器的性能感兴趣1
和2
,您可以这样做:
from sklearn.metrics import f1_score
predicted = [1, 1, 2, 3, 2, 1]
target = [1, 1, 2, 2, 2, 1]
print(f1_score(target, predicted, average='macro', labels=[1, 2]))
# 0.9
推荐阅读
- javascript - 试图将属性“onclick”添加到由 javascript 函数创建的 html“img”元素
- php - 从 url 中删除 index.php:谷歌云
- bash - 手动创建/验证 PrimeCoin 块哈希
- directx-11 - 如何使用 DirectX11(DirectX11.1 之前的版本)创建带有全套 mipmap 的 texture2d
- python - 如何使用 Python 从布尔表达式生成弹性搜索查询?
- c++ - C++ 使用命令 sfc /scannow 运行错误
- oracle - 如何从 DB2 或 Oracle 迁移到 TiDB?
- airflow - 检索气流中追赶=真的预定时间
- python - 如何在显示 matplotlib 动画后删除 Jupyter 输出中的残差图?
- java - 如何在 opshift 3 上部署 Wildfly EAR 应用程序