【问题标题】:what does pos_label in f1_score really mean?f1_score 中的 pos_label 到底是什么意思?
【发布时间】:2016-02-23 05:55:40
【问题描述】:

我正在 sklearn 中尝试 k_fold 交叉验证,但对 f1_score 中的 pos_label 参数感到困惑。我知道如果类别不是二进制,则 pos_label 参数与如何处理数据有关。但我对它的意义并没有很好的概念理解——有人对它在概念层面的含义有很好的解释吗?

我已阅读文档,但它们并没有真正帮助。

【问题讨论】:

    标签: machine-learning scikit-learn classification


    【解决方案1】:

    f1 分数是harmonic mean of precision and recall。因此,您需要计算 precision and recall 来计算 f1 分数。这两个度量都是根据“真阳性”(阳性实例分配一个阳性标签)、“假阳性”(阴性实例分配一个阳性标签)等来计算的。

    pos_label 参数可让您指定哪个类应被视为“正类”以便进行此计算。

    更具体地说,假设您正在尝试构建一个分类器,该分类器在无趣事件的大背景中发现一些罕见事件。一般来说,您关心的只是您如何识别这些罕见的结果;背景标签本身并不有趣。在这种情况下,您可以将pos_label 设置为您感兴趣的课程。如果您关心所有类的结果,f1_score 可能不是合适的指标。

    【讨论】:

    • 好的,所以我实际上是在一个多类问题中,我对所有分类的准确性同样感兴趣。你会推荐什么来验证这一点?我一开始就使用 k 折交叉验证完全关闭了吗?
    • 如果有趣的话,您可以尝试单独查找每个类的精度/召回率/F1。但是 jakevdp 对所有类都使用单个 f1 分值的说法并不是特别有用。
    • K-fold 交叉验证很好,但在所有类都很重要的多类情况下,准确度分数可能更合适。
    • 太好了,谢谢!作为记录,我发现 pandas_confusion 模块在这方面非常有用 - 它提供了一个在 pandas 中实现的混淆矩阵,它比 sklearn 中的更容易使用,它也证明了准确度得分。
    猜你喜欢
    • 2017-08-07
    • 2017-07-20
    • 2014-09-23
    • 2014-07-25
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多