【问题标题】:scikit-learn metrics on a subset of classesscikit-learn 对类子集的度量
【发布时间】:2015-03-03 06:35:32
【问题描述】:

我们正在使用 scikit-learn==0.15.2 并在 9 个课程和一个特殊的“其他”课程上培训 LinearSVC。 “其他”类包含我们数据集中不适合我们试图分类的 9 个重要类的任何内容。

我们希望仅获得 9 个类的平均微观/宏观精度/召回/f1 指标,不包括“其他”类,以便为我们的分类器获得性能估计。

我们未能在内置的 scikit metrics 函数中找到对此的任何支持。甚至classification_report 函数在尝试将标签限制为仅 9 (https://github.com/scikit-learn/scikit-learn/issues/3123) 时也会出现问题。

缺乏支持是否表明我们的基本方法不正确?我们在衡量绩效时是否应该包括“其他人”?

编辑:请注意,我们的消费者仅在我们预测 9 个类别之一时使用我们的预测。如果我们预测“其他”,我们的输出将被丢弃并使用另一个模型。

【问题讨论】:

    标签: python machine-learning scikit-learn


    【解决方案1】:

    简而言之是的,您应该包含每个类。为什么你会忽略(可能是最大的)类?即使它只是噪声,实际上能够将噪声与重要类区分开来也是分类器性能的基础。可能存在您对“其他”类不感兴趣的情况(在与误报无关的情况下),但这些情况非常罕见,因此不会直接在 scikit-learn 的指标模块中实现。

    【讨论】:

      【解决方案2】:

      为什么不使用混淆矩阵 http://scikit-learn.org/stable/modules/generated/sklearn.metrics.confusion_matrix.html

      基于该矩阵,您可以创建自己的指标

      【讨论】:

        猜你喜欢
        • 2016-09-15
        • 2016-08-09
        • 2016-08-30
        • 2016-01-16
        • 2020-08-06
        • 2016-03-19
        • 2023-04-07
        • 2015-04-08
        • 2014-02-09
        相关资源
        最近更新 更多