【问题标题】:How to get the same thresholds values for both functions precision_recall_curve and roc_curve in sklearn.metrics如何在 sklearn.metrics 中为 Precision_recall_curve 和 roc_curve 函数获得相同的阈值
【发布时间】:2015-07-15 09:38:03
【问题描述】:

我需要制作一个包含 TPR 和 FPR 值以及精度和召回率的表格。我在 python 中使用 sklearn.metrics 包中的 roc_curve 和 precision_recall_curve 函数。我的问题是每个函数都为我提供了不同的阈值向量,而我只需要一个即可将值合并为单个表中的列。谁能帮帮我?

提前致谢

【问题讨论】:

  • 我认为他们应该给你相同的值,对吧?否则你总是可以插值....

标签: python scikit-learn roc precision-recall


【解决方案1】:

阈值有两个主要区别。

  1. 订单不同。 roc_curve 的阈值按降序排列,而precision_recall_curve 的阈值按升序排列。

  2. 数字不同。在roc_curven_thresholds = len(np.unique(probas_pred)) 中,而在precision_recall_curve 中则为数字n_thresholds = len(np.unique(probas_pred)) - 1。在后者中,不包括来自roc_curve 的最小阈值。同时,最后的精度和召回值分别为 1. 和 0.,没有对应的阈值。因此,tpr、fpr、precision和recall的item个数是一样的。

那么,回到你的问题,如何制作一个表格来包含 tpr、fpr、precision 和 recall 以及相应的阈值?步骤如下:

  1. 丢弃最后的精度和召回值
  2. 反转精度和召回值
  3. 计算roc_curve的阈值中最低阈值对应的精度和召回值
  4. 将所有值放入同一个表中

【讨论】:

    猜你喜欢
    • 2021-05-22
    • 2017-01-02
    • 1970-01-01
    • 2021-05-04
    • 2020-06-23
    • 2019-09-17
    • 2020-12-28
    • 1970-01-01
    • 2021-06-20
    相关资源
    最近更新 更多