Transformers学习之Evaluate组件

这是一个评估函数,在模型训练与测试中,我们会根据一些指标来对模型进行评测,用起来也非常简单哈。

1
2
# 导包
import evaluate

支持的评估函数

支持的评估函数较多,这里只列出几个常见的,其余可以使用 evaluate.list_evaluation_modules() 方法进行查看

1
2
3
4
{'name': 'f1', 'type': 'metric'}
{'name': 'recall', 'type': 'metric'}
{'name': 'accuracy', 'type': 'metric'}
{'name': 'precision', 'type': 'metric'}

加载并使用评估函数

1
2
3
4
f1 = evaluate.load("f1")  
results = f1.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0],average="micro")
print(results)
# {'f1': 0.5}

同时计算多个指标

1
2
3
multi_metrics = evaluate.combine(["accuracy", "f1", "recall", "precision"])  
multi_metrics.compute(predictions=[0, 1, 0], references=[0, 1, 1])
# {'accuracy': 0.6666666666666666, 'f1': 0.6666666666666666, 'recall': 0.5,'precision': 1.0}

批量计算

1
2
3
4
5
f1 = evaluate.load("f1")  
for ref, pred in zip([0,1,0,1], [1,0,0,1]):
f1.add(references=ref, predictions=pred)
f1.compute()
# {'f1': 0.5}