f1-score计算公式
时间: 2025-01-08 17:50:17 AIGC 浏览: 294
### F1-score 的计算公式
F1-score 是用于评估分类器性能的重要指标之一,尤其适用于类别不平衡的数据集。该评分是精确率 (Precision) 和召回率 (Recall) 的调和平均数。
具体来说,F1-score 的定义如下:
\[ \text{F1} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \]
其中,
- **Precision**(精确率)是指预测为正类的实例中有多少是真的正类。
\[ \text{Precision} = \frac{\text{TP}}{\text{TP}+\text{FP}} \]
- **Recall**(召回率)是指实际为正类的实例中有多少被成功识别出来。
\[ \text{Recall} = \frac{\text{TP}}{\text{TP}+\text{FN}} \]
这里 TP, FP, TN, FN 分别代表真阳性(True Positive),假阳性(False Positive),真阴性(True Negative), 假阴性(False Negative)[^1]。
当 Precision 或 Recall 中任何一个为零时,F1-score 将变为零;只有两者都较高时,F1-score 才会高,这使得 F1-score 成为了一个平衡二者的好方法[^2]。
对于某些特定应用场景,可以引入加权形式来调整 Precision 和 Recall 对于整体得分的影响程度:
\[ \text{F}_\beta=\left(1+\beta^{2}\right)\cdot\frac{\mathrm {P} \cdot \mathrm {R}}{\left(\beta^{2}\cdot\mathrm {P}\right)+\mathrm {R}} \]
这里的 β 参数允许给定更多的重要性到其中一个方面——如果希望更重视召回率,则可以选择较大的 β 值;反之则选择较小的 β 值[^4]。
```python
def calculate_f1_score(tp, fp, fn):
precision = tp / (tp + fp) if (tp + fp) != 0 else 0
recall = tp / (tp + fn) if (tp + fn) != 0 else 0
f1 = 2 * ((precision * recall) / (precision + recall)) if (precision + recall) != 0 else 0
return round(f1, 2)
# Example usage:
print(calculate_f1_score(70, 15, 10))
```
阅读全文
相关推荐

















