【发布时间】:2021-06-28 05:52:13
【问题描述】:
from sklearn.metrics import f1_score
def f1_score_func(preds, labels):
preds_flat = np.argmax(preds, axis=1).flatten()
labels_flat = labels.flatten()
return f1_score(labels_flat, preds_flat, average='weighted')
def accuracy_per_class(preds, labels):
label_dict_inverse = {v: k for k, v in label_dict.items()}
preds_flat = np.argmax(preds, axis=1).flatten()
labels_flat = labels.flatten()
for label in np.unique(labels_flat):
y_preds = preds_flat[labels_flat==label]
y_true = labels_flat[labels_flat==label]
print(f'Class: {label_dict_inverse[label]}')
print(f'Accuracy: {len(y_preds[y_preds==label])}/{len(y_true)}\n')
需要计算多类模型的分类报告,但它只给出准确率和 f1 分数
【问题讨论】:
-
我不完全理解您的问题。你试过sklearn's classification report吗?
-
是的,我也需要显示混淆矩阵
-
那么 sklearn 的分类报告有什么问题呢?它输出召回率、准确率和 f 分数
-
是文本分类问题,包含10个多类。
-
你真的尝试过使用sklearns的classification_report吗?输出是什么?有没有错误?您的问题不清楚,需要澄清一下。
标签: nlp classification bert-language-model