Scikit-learn关于类子集的指标



我们在 9 个类和一个特殊的"其他"类上使用scikit-learn==0.15.2和训练LinearSVC。"其他"类包含我们数据集中不适合我们尝试分类的 9 个重要类的任何内容。

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

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

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

编辑:请注意,我们的消费者仅在预测9个类别之一时才使用我们的预测。如果我们预测"其他人",我们的输出就会被抛弃,并使用另一个模型。

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

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

根据该矩阵,您可以创建自己的指标

相关内容

  • 没有找到相关文章

最新更新