1

如何将空间分成两半的算法(例如支持向量机)推广到使用来自整数等集合的标签来标记数据?

例如,支持向量机通过构建一个超平面来运行,然后超平面“上方”的事物采用一个标签,而其下方的事物采用另一个标签。

这如何得到概括,以便标签是例如整数或其他任意大的集合?

4

2 回答 2

5

一种选择是“one-vs-all”方法,在该方法中,您为要划分的每个集合创建一个分类器,并选择概率最高的集合。

例如,假设您想对带有标签的对象进行分类{1,2,3}。然后你可以创建三个二元分类器:

  • C1 = 1 或(非 1)
  • C2 = 2 或(不是 2)
  • C3 = 3 或(不是 3)

如果您在一条新数据 X 上运行这些分类器,那么它们可能会返回:

  • C1(X) = 31.6% 的机会进入 1
  • C2(X) = 63.3% 的机会进入 2
  • C3(X) = 89.3% 的机会进入 3

根据这些输出,您可以将 X 分类为最有可能来自第 3 类。(概率加起来不等于 1 - 这是因为分类器彼此不了解)。

如果您的输出标签是有序的(具有某种有意义的顺序,而不是任意顺序)。例如,在金融领域,您希望将股票分类为 {BUY, SELL, HOLD}。尽管您不能合法地对这些数据执行回归(数据是有序的而不是比率数据),但您可以将 -1、0 和 1 的值分配给 SELL、HOLD 和 BUY,然后假装您有比率数据。有时这可以产生良好的结果,即使它在理论上是不合理的。

于 2012-06-15T10:19:34.880 回答
2

另一种方法是 Cramer-Singer 方法(“On the algorithmic implementation of multiclass kernel-based vector machines”)。Svmlight 在这里实现它:http: //svmlight.joachims.org/svm_multiclass.html

分类为无限集(例如整数集)称为序数回归。通常这是通过将一系列连续值映射到集合的元素上来完成的。(参见http://mlg.eng.cam.ac.uk/zoubin/papers/chu05a.pdf,图 1a)

于 2012-06-16T17:21:52.707 回答