【问题标题】:Average values of precision, recall and fscore for each label每个标签的准确率、召回率和 fscore 的平均值
【发布时间】:2015-08-04 13:28:47
【问题描述】:

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

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

【问题讨论】:

  • 如果它符合您的需要,请考虑接受未回答的问题。或评论答案,以便我完成

标签: scikit-learn classification cross-validation precision-recall


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    假设您有一个训练有素的分类器clf、测试示例X 和测试目标Y,那么您需要通过目标和预测的类概率。下面的示例将找到两类问题的准确率和召回率。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 2021-04-09
      • 2020-03-26
      • 2021-02-22
      • 2019-07-28
      • 2016-06-19
      • 2014-10-07
      相关资源
      最近更新 更多