python 计算F1score
时间: 2024-09-09 11:12:52 浏览: 72
在Python中计算F1分数通常用于评估二分类模型的性能,特别是在不平衡的数据集上,F1分数能够综合考虑精确率(Precision)和召回率(Recall)。F1分数是精确率和召回率的调和平均值,公式如下:
\[ F1 = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} \]
其中,精确率(Precision)表示预测为正类的样本中有多少是真正的正类,而召回率(Recall)则表示所有实际正类中,有多少被正确识别出来。
在Python中,我们可以使用sklearn库中的`f1_score`函数来计算F1分数。以下是一个简单的例子:
```python
from sklearn.metrics import f1_score
from sklearn.preprocessing import LabelBinarizer
# 假设y_true是实际标签列表,y_pred是预测结果列表
y_true = [0, 1, 1, 0, 1]
y_pred = [0, 1, 0, 0, 1]
# 对类别进行编码,如果数据是非二元的,可以使用LabelBinarizer
lb = LabelBinarizer()
y_true_encoded = lb.fit_transform(y_true)
y_pred_encoded = lb.transform(y_pred)
# 计算F1分数
f1 = f1_score(y_true_encoded, y_pred_encoded, average='binary') # 'binary'用于二分类任务
print(f"F1 Score: {f1}")
```
阅读全文