每个标签的精度、召回率和 fscore 的平均值

Average values of precision, recall and fscore for each label

我正在交叉验证 sklearn 分类器模型,并希望快速获得精度、召回率和 f 分数的平均值。 我怎样才能获得这些值?

我不想自己编写交叉验证代码,而是使用函数 cross_validation.cross_val_score。 是否可以使用此函数通过提供足够的评分函数来获得每个标签的预期平均值?

可以考虑使用sklearn.metrics package中的所有方法。

我认为 this method 可以完成您期望的工作。它为您提供了一个二维数组,其中一行代表每个目标唯一值,列代表精确度、召回率、fscore 和支持度。

对于快速记录,您也可以使用 classification_report

对于精确度和召回率,在 metrics 包中有一个名为 precision_recall_curve 的函数,它应该可以满足您的需求。

假设你有一个训练有素的 classifier clf,测试范例 X 和测试目标 Y,那么你需要通过目标并预测 class 概率。以下示例将查找两个 class 问题的精度和召回率。

probs = clf.predict_proba(X)[:,1]
precision, recall, thresholds = precision_recall_curve(Y, probs)

可以使用指标包中的不同函数找到 F 分数,f1_score。这以类似的方式使用,但需要预测的 class 作为参数的成员资格,而不是成员资格的概率。