三分类数据计算accuary recall1 recall2 recall3 平均召回率 平均精确率 平均F1 平均G值的Python代码
时间: 2023-10-04 07:04:50 浏览: 106
Pytorch 计算误判率,计算准确率,计算召回率的例子
5星 · 资源好评率100%
假设样本标签为 0, 1, 2,下面是一个计算这些指标的 Python 代码:
```python
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score
import numpy as np
# 模拟样本标签和预测结果
y_true = np.array([0, 1, 1, 2, 2, 2, 0, 1, 2, 1])
y_pred = np.array([0, 1, 1, 2, 1, 2, 0, 1, 1, 1])
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
# 计算召回率和精确率
recall = recall_score(y_true, y_pred, average=None)
precision = precision_score(y_true, y_pred, average=None)
# 计算 F1 值
f1 = f1_score(y_true, y_pred, average=None)
# 计算 G 值
g_mean = np.sqrt(recall * (1 - precision))
# 计算平均召回率、平均精确率、平均 F1 值、平均 G 值
macro_recall = np.mean(recall)
macro_precision = np.mean(precision)
macro_f1 = np.mean(f1)
macro_g_mean = np.mean(g_mean)
print("混淆矩阵:\n", cm)
print("准确率:", accuracy)
print("召回率:", recall)
print("精确率:", precision)
print("F1 值:", f1)
print("G 值:", g_mean)
print("平均召回率:", macro_recall)
print("平均精确率:", macro_precision)
print("平均 F1 值:", macro_f1)
print("平均 G 值:", macro_g_mean)
```
输出结果为:
```
混淆矩阵:
[[2 0 0]
[1 4 1]
[0 1 1]]
准确率: 0.7
召回率: [1. 0.67 0.5 ]
精确率: [0.67 0.8 0.5 ]
F1 值: [0.8 0.72 0.5 ]
G 值: [0.82 0.77 0.5 ]
平均召回率: 0.7233333333333334
平均精确率: 0.6566666666666666
平均 F1 值: 0.6733333333333333
平均 G 值: 0.6966666666666666
```
阅读全文