使用 sklearn.metrics 中的函数计算准确率、精确率、召回率和 F1 分数,并打印出来。 请根据实际情况调整路径和参数。编写代码
时间: 2024-11-15 08:23:19 浏览: 2
为了计算准确率、精确率、召回率和 F1 分数,我们可以使用 `sklearn.metrics` 模块中的相关函数。假设你已经完成了图像分类任务,并且有了预测结果和真实标签,下面是一个示例代码来展示如何计算这些指标并打印它们。
首先,确保你已经安装了 `scikit-learn` 库。如果没有安装,可以使用以下命令进行安装:
```bash
pip install scikit-learn
```
然后,你可以使用以下代码来计算并打印这些指标:
```python
import numpy as np
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
# 示例数据:真实标签和预测标签
y_true = np.array([1, 0, 1, 1, 0, 1, 0, 0, 1, 1])
y_pred = np.array([1, 0, 1, 0, 0, 1, 1, 0, 1, 1])
# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
# 计算精确率
precision = precision_score(y_true, y_pred)
# 计算召回率
recall = recall_score(y_true, y_pred)
# 计算F1分数
f1 = f1_score(y_true, y_pred)
# 打印结果
print(f"Accuracy: {accuracy:.2f}")
print(f"Precision: {precision:.2f}")
print(f"Recall: {recall:.2f}")
print(f"F1 Score: {f1:.2f}")
```
在这个示例中,我们假设 `y_true` 是真实标签,`y_pred` 是模型的预测标签。你可以根据实际情况替换这些数组的内容。
如果你的数据集是多类分类问题,可以使用 `average` 参数来指定如何计算多类分类的平均值。例如:
```python
# 多类分类示例
y_true_multi = np.array([0, 1, 2, 0, 1, 2, 0, 1, 2, 0])
y_pred_multi = np.array([0, 1, 2, 0, 1, 1, 0, 1, 2, 0])
# 计算准确率
accuracy_multi = accuracy_score(y_true_multi, y_pred_multi)
# 计算精确率
precision_multi = precision_score(y_true_multi, y_pred_multi, average='macro')
# 计算召回率
recall_multi = recall_score(y_true_multi, y_pred_multi, average='macro')
# 计算F1分数
f1_multi = f1_score(y_true_multi, y_pred_multi, average='macro')
# 打印结果
print(f"Accuracy (multi-class): {accuracy_multi:.2f}")
print(f"Precision (multi-class): {precision_multi:.2f}")
print(f"Recall (multi-class): {recall_multi:.2f}")
print(f"F1 Score (multi-class): {f1_multi:.2f}")
```
在这个多类分类示例中,`average='macro'` 表示计算每个类别的指标后取平均值。你也可以使用 `micro` 或 `weighted` 来计算不同的平均方式。
阅读全文