多类别分类 - 为每个类别使用一组不同的负样本是个好主意?

Posted

技术标签:

【中文标题】多类别分类 - 为每个类别使用一组不同的负样本是个好主意?【英文标题】:multiple categories classification - good idea to use a different set of negative samples for each category? 【发布时间】:2014-10-22 12:38:30 【问题描述】:

我们有一个分类器,可将网站分为 50 个类别之一。

经典的方法是构建 50 个二分类器(如这里:nlp)。有一个单个大标记学习语料库,我们使用来自其类别的正样本和来自所有其他类别的负样本来训练每个分类器。

完全解耦并为每个类别保留一组正负样本是个好主意吗?

这将使我们能够:

我们很容易收集和添加更多的负样本(我们只是随机抽取站点) 目前,添加第 51 个新类别是一个非常困难的过程,因为旧类别是很久以前训练的,所以新的第 51 个分类器会被具有与旧样本不同的时间属性的新样本混淆 - 并且刷新所有 51 个类别的另一种选择非常昂贵。如果我们要解耦,我们可以保留当前的 ​​50 个分类器,只添加一个新的分类器,包括新的正样本和负样本!

问题:你能看出这个想法有什么问题吗?如果是这样,你能指出我这个方向的文献/研究吗?如果不是,问题在哪里?

谢谢!

【问题讨论】:

【参考方案1】:

如果您认为每个网站都应该属于 50 个类别之一,那么您最初的想法听起来会更好。但是,当您有这么多类别时,二元分类器并不总是最好的解决方案,因为您必须将每个类别都设为正类,并将所有其他类别设为负类(一对一),或者您将所有对类别,并为每一对训练分类器。无论哪种方式,您都必须通过运行所有分类器对结果进行后处理来确定测试点的类别。

有一些很好的分类器可以使用单个分类器处理任意数量的类别。随机森林就是一个很好的例子,它们在实践中工作得很好,特别是如果你的特征都是数字或符号,只有几个可能的值。他们可以快速训练和运行测试数据。

【讨论】:

谢谢,但您提供的方法是紧密耦合所有 50 个类别,因此添加第 51 个类别非常困难。如果所有类别共享相同的训练集,那么添加一个新类别需要刷新所有其他 50 个类别。单一分类器建议使其更加耦合 - 添加新类别可能会严重损害旧类别的性能

以上是关于多类别分类 - 为每个类别使用一组不同的负样本是个好主意?的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 | 逻辑回归如何实现多分类

大数据算法:分类算法

标签估计(监督学习)

多类别分类(Multicalss Classification)

libsvm处理多分类的问题

样本类别不均会导致混淆矩阵的变化吗