machine-learning - Precision、Recall 和 F1 可以是相同的值吗?
问题描述
我目前正在研究一个 ML 分类问题,我正在使用sklearn
库的以下导入和相应的代码计算精度、召回率和 F1,如下所示。
from sklearn.metrics import precision_recall_fscore_support
print(precision_recall_fscore_support(y_test, prob_pos, average='weighted'))
结果
0.8806451612903226, 0.8806451612903226, 0.8806451612903226
对于 ML 分类问题,是否有可能为所有 3 个、精度、召回率和 F1 获得相同的值?
在这方面的任何澄清将不胜感激。
解决方案
是的,这是可能的。让我们假设二进制分类
的简单解决方案Pr = Re = F1
是TP = 0
。所以我们知道精度、召回率和 F1 通常可以具有相同的值。现在,这不适用于您的特定结果。如果我们求解方程组,我们会找到另一个解:FP = FN
。因此,如果误报的数量与误报的数量相同,则所有三个指标都具有相同的值。
对于多类分类问题,我们有
如果Pr = Re
,那么所有三个指标都是相同的。
推荐阅读
- java - 如果表单输入未明确使用它,如何设置 Spring Form 和 Thymeleaf 以不更改作为模型属性添加的对象字段?
- css - 角度局部视图
- r - 在 R 中多次应用简单的数学而不使用 for 循环
- r - 错误:尝试在 text2vec 中应用非函数
- html - 在 HTML 中正确显示存储在数据库中的带有标记的文本
- javascript - 如何正确模拟减速器中的函数
- python - 计算浮点数以在 Python 中找到整数
- node.js - 松露:运行承诺功能时出现“无效或意外的令牌”
- asp.net-mvc - 我在 System.web.mvc 中找不到 TempData
- spring-boot - 由于依赖关系,Google Api 日历和 Spring Boot 无法正常工作