续写计算F1和recall的函数并输出
时间: 2024-09-18 19:11:43 浏览: 34
为了计算F1分数和召回率(Recall),我们需要首先确定几个关键指标:真正例(True Positives, TP)、假正例(False Positives, FP)和假反例(False Negatives, FN)。其中,
- TP 是正确被分类成垃圾邮件的数量;
- FP 是错误地被分类成了垃圾邮件的实际非垃圾邮件数量;
- FN 是未被识别出的垃圾邮件的数量;
接下来我们定义这些值,并且基于它们来实现 F1 分数和召回率的计算:
```python
def calculate_TP_FP_FN(pred, true):
TP = sum([1 for p, t in zip(pred, true) if p == 1 and t == 1])
FP = sum([1 for p, t in zip(pred, true) if p == 1 and t == 0])
FN = sum([1 for p, t in zip(pred, true) if p == 0 and t == 1])
return TP, FP, FN
TP, FP, FN = calculate_TP_FP_FN(pred, true)
# Recall = TP / (TP + FN)
recall = TP / (TP + FN)
# Precision = TP / (TP + FP)
precision = TP / (TP + FP)
# F1 Score = 2 * ((Precision * Recall) / (Precision + Recall))
f1_score = 2 * ((precision * recall) / (precision + recall))
print("Recall:", recall)
print("F1 Score:", f1_score)
```
以上代码将补充进之前的程序以输出召回率和F1分数。注意,在实际应用时应处理除零错误的情况,例如当`TP+FN`或者`TP+FP`等于零时需要特别处理。上述代码假设了`TP`, `FP`, 和 `FN` 都不会同时为零的情形。
阅读全文