我正在构建一个程序来实现多标签分类的解决方案。这是一个有趣的问题,因为大多数示例(~90%)实际上只有一个类,但有些有多个类。
此外,我们知道某些类是互斥的,即如果一个示例属于 A 类,则它不能属于 B 类,反之亦然。
目前实现的方式是识别所有互斥的类并将它们放在自己的分类器中,然后为每个其他分类器构建一个单独的分类器:
Classifier 1: Predicts A (or OTHER)
Classifier 2: Predicts B (or OTHER)
Classifier 3: Predicts C,D,E, or F (or OTHER)
当分类器运行时,它会从所有 3 个分类器中获取预测,然后将它们组合起来。因此,如果分类器 1 预测 A,而分类器 2 和 3 都预测 OTHER,则结果将为 A。如果分类器 2 预测 B,则结果将为 A,B。
所以我的问题是:
- 这对您来说似乎是一个合理的实现吗?
- 似乎不利的一面是,
A and B当我们真的希望它们更频繁地排他时,我们可能会遇到太多次。在这种情况下,我们可以尝试使用通过预测来控制排他性程度的分类器来改进事物A, B, A-and-B。但这可能代表一种改进,还是没有必要?
在理想的世界中,如果 A 和 B 分类器正常运行,我认为这是不必要的,但我不知道将决策组合到单个分类器中是否可以让分类器以某种方式“更好地”学习边界。