machine-learning - 一类 SVM 概率估计以及一类 SVM 与聚类有何不同

标签 machine-learning computer-vision svm libsvm

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

我的问题是,

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

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

最佳答案

如果您想要概率估计,请不要使用一类 SVM。这不是它们的设计目的。你想要类似 kernel density estimation 的东西,它在给出一些正面示例的情况下提供了非参数密度估计。

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

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

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

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

关于machine-learning - 一类 SVM 概率估计以及一类 SVM 与聚类有何不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14582916/

相关文章:

matlab - 使用 SVM 回归进行预测?

matlab - MATLAB 中的 SVM 可视化

python - 如何使用 train_test_split 在交叉验证中保持测试大小不变?

machine-learning - NLTK(python)中的语料库和词典有什么区别

c++ - VS2012 C++ 的 Delaunay 三角剖分?

opencv - 识别图像中的长不规则图案

forms - 通过字段识别和光学字符识别 (OCR) 在预定义表格上进行手写数据输入自动化

Python NLTK : How to retrieve percentage confidence in classifier prediction

python - 我可以仅对多个数据类型的 DataFrame 中的数值数据使用 K-Means 吗?

python - tensorflow 自动编码器损失不收敛