2

我有一组图像。我想学习一个类 SVM(OC-SVM)来模拟特定类(正)的分布,因为我没有足够的例子来表示其他类(负)。我对 OC-SVM 的理解是它试图将数据与原点分离,或者换句话说,它试图学习一个超球体来适应一类数据。

我的问题是,

  1. 如果我想使用 OC-SVM 的输出作为概率估计,我该怎么做?

  2. OC-SVM 和任何聚类算法(例如 k-means)有什么区别?

4

1 回答 1

7

如果您想要概率估计,请不要使用一类 SVM。这不是他们的设计目的。您需要类似内核密度估计的东西,它在给定一些正例的情况下提供非参数密度估计。

一类 SVM 和聚类之间的区别在于,在聚类中,你从几个类中获得点,但你不知道哪些点对应于哪些类:这是推理的目标(你也可能最终得到类的密度估计和所有特征空间的边际密度)。一类 SVM 仅从一类中获得分数,并期望学习该类成员与其他任何成员之间的分离。

编辑:聚类与密度估计不同。聚类涉及确定哪些实例属于哪些类(集群),当没有给出分配时,并不一定会导致提供的示例与输入空间中的任何点之间的相似性得分。

如果目标是说这个新实例与我见过的正训练示例有多相似,那么您要做的就是将概率分布拟合到您的训练示例,然后评估新点的密度函数。如果此密度低于阈值,则您说新点不在提供的示例定义的类别之外。

如果您愿意,您可以构建该类的参数模型,但这通常很棘手,除非您对问题有所了解或愿意采用标准分布(多变量正态或朴素贝叶斯是两个明显的分布)。因此,替代方法是使用非参数密度估计。这就是我提到的核密度估计。

于 2013-02-04T11:01:04.263 回答