在预测单个类时比较多类与二元分类器

数据挖掘 机器学习 分类 多类分类
2022-02-19 15:02:13

我几乎已经阅读了大多数类似的问题,但我还没有找到我的问题的答案。

假设我们有n四个不同标签/类别的样本,即ABCD我们训练两个分类器:

  • First classifier:我们训练了一个多类分类器,将数据中的样本分类为四个类别之一。假设模型的准确率为 %x。
  • Second classifier: 现在假设我们关心的是样本是 A 还是不是 A。我们训练了一个二元分类器,用于将样本分类为 A 或非 A。假设这个模型的准确率是 %y。

我的问题是,我们可以比较 x 和 y 来衡量分类器对 A 进行分类的性能吗?换句话说,多类分类器的高性能是否意味着分类器也能够以高性能识别单个类?

真实世界的例子是,我读过在包含四种不同类型文本的数据集上训练多类分类器的论文。他们取得了相当高的性能。但我关心的只是让模型能够正确分类一种特定类型的文本。我训练了一个精度较低的二元分类器。这是否表明我的模型在该类型的文本上效果不佳,而多类分类器的效果更好?还是我不应该比较这两者?

1个回答

一般来说,我们无法将多类分类器的性能与二元分类器的性能进行比较,因为前者表示分类器在分类任何类的任何实例方面的表现如何。因此,如果有样本标记为 A,则只有nAnA/n多类分类器的全局准确率约为 A。特别是多类分类器通常倾向于偏爱最大的类,因此如果 A 类恰好是数据的一小部分,那么全局性能将无法反映它的好坏在对 A 进行分类时:例如,仅仅因为 B 类是 90% 的数据,它可能具有 90% 的准确率,这并不能证明关于 A 类的任何事情。相比之下,二元分类器的性能根据定义仅与 A 类有关。

但是,如果可以访问多类分类器的详细评估,通常是混淆矩阵,那么就可以计算单个类的分类器性能,比如 A 类。实际上通过合并所有 B、C、D 行混淆矩阵中的所有 B、C、D 列一起得到一个二元分类混淆矩阵,从中可以计算出可以与另一个二元分类器进行比较的性能。但是在这种情况下,由于上述原因,多类分类器处于劣势:它还必须处理其他类,这可能导致它“牺牲”一个类,而二元分类器没有这个问题。