我正在使用Python和scikit-learn处理一个多类分类问题。目前,我使用classification_report
函数来评估分类器的性能,得到的报告如下所示:
>>> print(classification_report(y_true, y_pred, target_names=target_names)) precision recall f1-score support class 0 0.50 1.00 0.67 1 class 1 0.00 0.00 0.00 1 class 2 1.00 0.67 0.80 3avg / total 0.70 0.60 0.61 5
为了进行进一步的分析,我对获取每个可用类的F1分数感兴趣。也许像这样:
>>> print(calculate_f1_score(y_true, y_pred, target_class='class 0'))0.67
scikit-learn中有类似的功能吗?
回答:
摘自f1_score
的文档。
from sklearn.metrics import f1_scorey_true = [0, 1, 2, 0, 1, 2]y_pred = [0, 2, 1, 0, 0, 1]f1_score(y_true, y_pred, average=None)
输出结果如下:
array([ 0.8, 0. , 0. ])
这是每个类的分数。