将SVM超平面距离(响应)转换为可能性

时间:2014-03-19 11:24:57

标签: image matlab opencv svm pattern-recognition

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

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

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

抱歉我的英文。我欢迎任何建议和评论。谢谢。 link to paper

1 个答案:

答案 0 :(得分:2)

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

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

  

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

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

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