关于多对多分类器的文献

Posted

技术标签:

【中文标题】关于多对多分类器的文献【英文标题】:Literature on many-vs-many classifier 【发布时间】:2013-05-06 05:04:42 【问题描述】:

在Multi-Class Classification (MCC) 问题的上下文中, 一种常见的方法是从多个二元分类器构建最终解决方案。 通常提到的两种组合策略是一对多和一对一。

为了区分方法, 查看每个二元分类器尝试做什么会更清楚。 One-vs-all 的原始分类器试图将一个类与其他类分开。 而一对一的原始尝试将一对一分开 One-vs-one is also, quite confusingly, called all-vs-all and all-pairs.

我想研究一下这个相当简单的建筑理念 MCC分类器通过在 二叉决策树的方式。 举个例子:

       has wings?
     /           \
  quack?         nyan?
  /   \         /     \
duck  bird    cat     dog

如您所见,has wings? 进行了 2-vs-2 分类, 所以我称这种方法为多对多。 问题是,我不知道从哪里开始阅读。 有什么好论文可以推荐吗?

为了提供更多背景信息, 我正在考虑使用多级进化算法 (MLEA) 来构建树。 因此,如果有更直接的答案,那将是最受欢迎的。

编辑:有关更多上下文(也许您会发现它有用), 我读了this paper,这是GECCO 2011 best paper 的获奖者之一; 它使用 MLEA 以一对多的方式组成 MCC。 这就是启发我寻找一种方法来修改它作为决策树构建器的原因。

【问题讨论】:

【参考方案1】:

你想要的看起来很像Decision Trees。

来自维基:

决策树学习用于统计、数据挖掘和机器学习,它使用决策树作为预测模型,它将对项目的观察映射到关于项目目标值的结论。这种树模型更具描述性的名称是分类树或回归树。在这些树结构中,叶子代表类标签,分支代表导致这些类标签的特征的结合。

【讨论】:

那个wiki页面不错。谢谢。同时,我觉得以前没有看过那个页面有点傻。 这并不傻,因为除非你知道,否则寻找什么并不那么明显。顺便说一句,您可能也对相关主题感兴趣(在See also 部分),例如Decision StumpPruning【参考方案2】:

Sailesh 的回答是正确的,因为您打算构建的是决策树。已经有许多算法用于学习这样的树,例如随机森林。你可以例如试试weka 看看那里有什么可用的。

如果你对进化算法更感兴趣,我想提一下Genetic Programming。例如,您可以尝试我们在HeuristicLab 中的实现。它可以处理数字类并尝试使用例如找到将每一行映射到其各自类的公式(树)。均方误差 (MSE) 作为适应度函数。

还有基于实例的分类方法,如最近邻或基于内核的方法,如支持向量机。基于实例的方法也支持多个类,但是对于内核方法,您必须使用您提到的方法之一。

【讨论】:

两者看起来都是非常棒的工具。非常感谢。对于您的 HeuristicLab,其基于 GUI 的方法非常适合作为学习工具。但我有一种感觉 但我关心的是定制。我在那里看到了显示如何编辑 GA 流程图的视频。但这是否足够定制?或者它是否允许以某种方式集成传统编码? 您可以在算子图中使用可编程算子来添加一些自定义代码,或者您也可以使用 Visual Studio 并将自己的算法编写为插件。网站上也有一些教程。

以上是关于关于多对多分类器的文献的主要内容,如果未能解决你的问题,请参考以下文章

在 TensorFlow 中使用多对多 LSTM 进行视频分类

NLTK/NLP 构建多对多/多标签主题分类器

Hibernate一对多,多对多操作

与 NoSQL 数据库的多对多关系

Hibernate:n-n关联关系

使用 Python 示例对多项朴素贝叶斯分类器进行分类