【发布时间】:2016-03-19 04:18:18
【问题描述】:
我正在使用多类分类器(支持向量机,通过 One-Vs-All)对数据样本进行分类。假设我目前有 n 不同的类。
但是,在我面临的情况下,新的数据样本可能属于以前从未见过的 new 类n+1。
所以我想你可以说我需要一种在线学习形式,因为一开始并没有适合后来出现的所有数据的不同训练集。相反,我需要 SVM 动态适应未来可能出现的新类。
所以我想知道我是否以及如何...
确定一个新的数据样本不太适合现有的类,而是应该创建一个新的类。
将该新类集成到现有分类器中。
我能隐约想到一些可能是解决这个问题的方法:
如果没有一个二元 SVM 分类器(在 OVA 案例中每个类都有一个)预测新数据样本的概率相当高(例如 > 0.5),我可以假设这个新数据样本可能代表一个新的类。
我可以为该新类训练一个新的二元分类器并将其添加到多类 SVM。
然而,这些只是我幼稚的想法。我想知道是否有一些“正确”的方法来代替,例如使用聚类算法查找所有类。
或者也许我尝试使用 SVM 的方法甚至不适用于此类问题?
非常感谢您的帮助。
【问题讨论】:
-
你想坚持使用 SVM 吗?您所说的课程范围是什么?
-
- 不,我不一定需要坚持使用 SVM。我只是在使用它,因为它似乎是最常见的基于内核的算法。 - 不确定我是否正确理解了您关于课程范围的问题 - 这些课程可能在十几个或两个到一百个不同的课程范围内。
-
您必须考虑到您无法在具有单个数据点的类上训练 SVM。这意味着当你找到一个可能属于一个新类的点时,你必须等到获得更多接近它的点,然后才能为该类训练分类器。当您开始获得两个无法分类的点时,问题就出现了,每个点都属于不同的类别。
-
好的,我明白了。那么,当不清楚最终会得到哪些类时,是否有任何适当/众所周知的方法来解决这类问题?
-
我一无所知。但是,您的方法看起来不错,但您必须找到衡量新未分类点的相似性的方法。如果其中一组达到一定数量,您可以开始为该组构建分类器。这是为了克服我告诉你的问题。
标签: machine-learning classification svm