SVM 和无效类别

Posted

技术标签:

【中文标题】SVM 和无效类别【英文标题】:SVM and Invalid category 【发布时间】:2012-11-08 23:08:46 【问题描述】:

我想在我的 SVM 分类中有一个无效的类别。例如考虑水果分类,我想要 APPLE、ORANGE、BANANA 和“NOT FRUIT”(无效)。我想知道是否最好为每个类别创建一个二进制 SVM 分类器(一个用于 APPLE,一个用于 ORANGE 等),或者创建一个将无效类别作为类别之一的 SVM 分类器,并为其提供无效的训练数据。

更具体地说,我有一个对时间序列数据进行分类的分类器。我需要将一些美联储时间序列分类为无效类别(或基本上不是所需类别)。

【问题讨论】:

【参考方案1】:

这取决于您的 SVM 包。如果您使用的是 libsvm,则可以有几个“正”类。只需调用“无效”类 0,apple 为 1,orange 为 2,依此类推。

【讨论】:

但是如果我创建多个分类器会训练得更好吗?例如Apple 的分类器(是,否),橙色的分类器(是,否)等 视情况而定。 SVM 尝试使用超平面分离 nD(或 (n+1)D 空间)中的数据。如果你有两个类别,那么分离很简单:你在空间中的点要么落在一侧,要么落在平面上,要么落在另一侧。如果你有多个类别,正面类别也会被一个超平面隔开,这意味着当模型预测它是一个苹果时,不仅意味着它不是“无效”而且它也不是“橙色”。您需要弄清楚确定一种水果与无效是否是您想要的,或者确保“苹果”是苹果,“橙色”是橙色与无效。【参考方案2】:

no_fruit 只是另一个类。你需要的是Multiclass classification。 SVM 通过超平面分离类,因此您需要在顶部使用另一种算法。现在大多数包都提供这样的多类分类,但性能上存在差异。

    他们在每一堂课上都与其他人一起上课 他们互相对抗

无论你先做什么,你都会有多个结果(石头剪刀布)

    在这种情况下,您可能有 0 到 n 个阳性结果 在这种情况下,您可能有 1 到 n 个班级,有 1 到 n-1 票

我建议使用也可以进行投票的库。

虽然你说的是“时间序列数据”。这听起来不像水果,可能还有其他要求

【讨论】:

以上是关于SVM 和无效类别的主要内容,如果未能解决你的问题,请参考以下文章

将权重分配给多标签 SVM 以平衡类别

Java SVM 文本分类、训练和测试文件?

支持向量机 (SVM) 的功能

matlab中用svm如何做多类别分类(R2013a)?

预测 svm 中的多类

SVM、Softmax 损失函数