image - 将 SVM 超平面距离(响应)转换为似然

标签 image matlab opencv svm pattern-recognition

我正在尝试使用 SVM 来训练一些图像模型。然而 SVM 不是概率框架,因此它输出超平面之间的距离作为一个整数。

Platt通过使用一些优化函数将 SVM 的输出转换为似然,但我不明白,如果所有训练集都是偶数且成比例的,该方法是否假设一个类具有相同的概率 I.E 对于二元分类器,那么对于标签 1 或 -1 它发生每次都有 50% 的概率。

其次,在一些论文中,我读到对于二进制 SVM 分类器,它们将 -1 和 1 标签转换为 0 到 1 的范围并计算似然。但是他们没有提到如何将 SVM 距离转换为概率。

对不起我的英语。我欢迎任何建议和评论。谢谢。 link to paper

最佳答案

据我所知,这篇论文提出了使用 sigmoid 函数从 SVM 输出到 [0,1] 范围的映射。

从简化的角度来看,它类似于 [0,1] 中的 Sigmoid(RAWSVM(X)),因此标签没有明确的“权重”。这个想法是,你取一个标签(假设 Y=+1),然后你取 SVM 的输出,看看该模式的预测与该标签有多接近,如果接近,则 sigmoid 会给你一个接近 1 的数字,否则会给你一个接近 0 的数字。因此你有一种概率感。

Secondly, in some papers I read that for binary SVM classifier they convert -1 and 1 label to range of 0 to 1 and compute the likelihood. But they do not mention anything about how to convert the SVM distance to probability.

是的,你是对的,有些实现在 [0,1] 的范围内工作,而不是 [-1,+1],有些甚至根据 C 的值将标签映射到一个因子。无论如何,这不应该影响论文中提出的方法,因为它们会将任何范围映射到 [0,1]。请记住,这种“概率”分布只是假设均匀性从任何范围到 [0,1] 的映射。我过于简单化了,但效果是一样的。

最后一件事,sigmoid 映射不是静态的,而是数据驱动的,这意味着会有一些训练使用数据集来参数化 sigmoid 以将其调整为数据。换句话说,对于两个不同的数据集,您可能会得到两个不同的映射函数。

关于image - 将 SVM 超平面距离(响应)转换为似然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504307/

相关文章:

matlab - Matlab/Octave 是否支持对矩阵切片的操作?

arrays - 如何找到列表中1的最长间隔[matlab]

c++ - 最快的 C/C++ 图像大小调整库

jquery - 如果图像未悬停,则隐藏 div

Python 检索 JPEG 图像上黑色矩形左上角的 (x,y) 坐标

opencv - 无法识别的命令行选项 '-stdlib=libstdc++'

opencv - 如何从像素坐标计算归一化图像坐标?

html - 选择随机背景 - HTML/CSS

matlab - 我有一个行向量,我想将其添加到矩阵的末尾

c++ - 显示矩阵 opencv 的奇怪行为