多类分类与二元分类

数据挖掘 机器学习 分类 支持向量机 多类分类 美国有线电视新闻网
2021-10-02 18:43:29

一个训练集有五个类,包括:

"label-A", "label-B", "label-C", "label-D", "others"

但问题要简单得多——就是判断每个输入是否属于"label-ABCD""others"在这种情况下,我认为有两种解决方案可以解决这个问题。

解决方案 1:训练一个 5 类分类器,当分类器预测输入为"label-A"or"label-B""label-C"or"label-D"时,我们将其重新标记为"label-ABCD"

解决方案 2:训练一个 2 类分类器,我们将数据重新标记"label-ABCD"为标记为"label-A"or"label-B""label-C"or "label-D"然后它变成了一个二分类问题。

我的问题是:

  1. 模型在“定理”中哪一种方式可以得到更好的表现

  2. 在实际情况下,这两种情况通过 CNN 分类模型得到几乎相同的性能,我想知道我是否采用 C4.5、朴素贝叶斯、SVM 等较弱的分类器……哪种方法会胜出?

谢谢!!

1个回答

输出节点的数量越多,您将添加到模型中的复杂度就越高。这意味着给定固定数量的数据,更多数量的输出节点将导致更差的结果。我会使用 ABCD 与其他策略。

您无需单独调整模型来学习 A、B、C 和 D 类的分布,而是将它们组合起来。这意味着 A 和 B 在某些方面是不同的,但是这种差异与“其他”的分类无关,那么就不需要学习这种区别。

例如:如果要检测具有体重、身高和腿数等特征的狗、猫、人。腿特征数量的重要性相对较低,因为猫和狗很可能都有 4 条腿。但是,如果我想对猫/狗与人类进行分类,那么腿的数量将是最重要的特征。它可能是您需要的唯一功能。

一个警告可能是严重的阶级失衡。通过以这种方式组合您的类,您最终可能会过度表示 ABCD。您可以使用异常检测等技术在您的 ABCD 数据上训练模型,然后检测新实例是否属于此分布,或者是否是异常值,在这种情况下您会将其标记为“其他”。