在多类分类(MCC)问题背景下,常见的方法是通过多个二元分类器构建最终解决方案。通常提到的两种组合策略是一对所有和一对一。
为了区分这两种方法,更清楚的做法是看每个二元分类器试图做什么。一对所有的原始分类器试图将一个类别与其他所有类别分开。而一对一的原始分类器试图将一个类别与另一个类别分开,一对一也被称为所有对所有和所有配对,这一点相当令人困惑。
我想研究通过以二元决策树的方式组合二元分类器来构建MCC分类器的这个相当简单的想法。举个说明性的例子:
有翅膀吗? / \ 呱呱叫吗? 喵喵叫吗? / \ / \鸭子 鸟 猫 狗
如你所见,有翅膀吗?
进行的是2对2的分类,所以我称这种方法为多对多。问题是,我不知道从哪里开始阅读。你能推荐一篇好的论文吗?
为了提供更多的背景信息,我正在考虑使用多层次进化算法(MLEA)来构建这棵树。所以如果有更直接的答案,将会非常受欢迎。
编辑:为了提供更多背景信息(或许你会觉得有用),我读了这篇论文,这是GECCO 2011最佳论文获奖者之一;它使用MLEA以一对所有的方式组合MCC。这激发了我寻找一种将其修改为决策树构建器的方法的想法。
回答:
@Sailesh的回答是正确的,你打算构建的是一棵决策树。已经有很多用于学习这种树的算法,例如随机森林。你可以尝试weka,看看那里有什么可用的资源。
如果你对进化算法更感兴趣,我想提一下遗传编程。你可以尝试我们在HeuristicLab中的实现。它可以处理数值类,并尝试找到一个公式(树),使用例如均方误差(MSE)作为适应度函数,将每一行映射到其相应的类别。
还有基于实例的分类方法,如最近邻居,或基于核的方法,如支持向量机。基于实例的方法也支持多个类别,但使用基于核的方法时,你必须使用你提到的方法之一。