在Python中,如何利用测试集的标签和预测结果来计算并输出模型的分类精度(Accuracy)、精确率(Precision)、召回率(Recall),以及F1分数?
时间: 2024-11-06 10:13:18 浏览: 49
在Python中,通常我们会使用scikit-learn库来进行这样的评估。首先,你需要有实际的测试集标签(test_labels)和模型的预测结果(predicted_labels)。以下是一个简单的步骤:
```python
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 假设test_labels是列表形式的真值标签,predicted_labels是同样长度的预测标签列表
test_labels = [0, 1, 0, 1, ...] # 真实标签
predicted_labels = [0, 1, 0, 0, ...] # 预测标签
# 计算准确率 (Accuracy)
accuracy = accuracy_score(test_labels, predicted_labels)
print("Accuracy:", accuracy)
# 计算精确率 (Precision)
precision = precision_score(test_labels, predicted_labels, average='weighted') # 如果有多类别,可以指定average参数
print("Precision:", precision)
# 计算召回率 (Recall)
recall = recall_score(test_labels, predicted_labels, average='weighted')
print("Recall:", recall)
# 计算F1分数 (F1 Score)
f1 = f1_score(test_labels, predicted_labels, average='weighted')
print("F1 Score:", f1)
```
这里,`accuracy_score`计算的是所有预测正确的比例,`precision_score`衡量的是预测为正类的样本中有多少是真正的正类,`recall_score`衡量的是真正属于正类的样本中被正确识别出的比例,而`f1_score`是精确率和召回率的加权平均,对于不平衡数据集尤其有用。
阅读全文