machine-learning - Precision、Recall 和 F1 可以是相同的值吗?

标签 machine-learning scikit-learn classification precision precision-recall

我目前正在研究 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

机器学习分类问题的精确率、召回率和 F1 这三项是否有可能获得相同的值?

对于这方面的任何澄清,我们将不胜感激。

最佳答案

是的,这是可能的。让我们假设二元分类为

Pr = TP  / (TP + FP); Re = (TP + FN); F1 = 2TP / (2TP + FP + FN)

Pr = Re = F1 的简单解是 TP = 0。所以我们知道精度、召回率和 F1 一般来说可以具有相同的值。现在,这不适用于您的具体结果。如果我们求解方程组,我们会找到另一个解:FP = FN。因此,如果误报数量与漏报数量相同,则所有三个指标都具有相同的值。

对于多类分类问题,我们有

F1 = 2 * (Pr * Re) / (Pr + Re)

如果Pr = Re,则所有三个指标都是相同的。

关于machine-learning - Precision、Recall 和 F1 可以是相同的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54068401/

相关文章:

machine-learning - 为什么要在机器学习中连接特征?

machine-learning - 较长的文本(例如文章内容)还是较短的文本(例如文章标题)更适合分类?

python - 如何在SVC模型中设置特定阈值并生成混淆矩阵?

python - 如何在tensorflow 2中获得损失梯度wrt内层输出?

machine-learning - 模型训练后的 Keras 预测

python - 如何将新数据转换为训练数据的 PCA 组件?

python - SKLearn - 主成分分析导致 knn 预测出现可怕的结果

python - 如何使用现有的和较新的类微调 keras 模型?

r - 如何计算带标签的多类分类AUC?

Python Orange分布式计算