【问题标题】:libSVM outputs "Line search fails in two-class probability estimates"libSVM 输出“线搜索在两类概率估计中失败”
【发布时间】:2013-05-18 12:36:18
【问题描述】:

当我尝试用 RBF 内核训练 SVM(trainsvm 函数)时,

libSVM 库在训练期间输出“在二分类概率估计中行搜索失败”

经过训练,模型的训练准确率只有 20%。

我想我可能会漏掉一些东西,它与消息有关。

有关我的项目的更多信息,

我正在处理 PASCAL VOC 动作分类问题。

我正在尝试遵循这种方法。 http://www.ifp.illinois.edu/~jyang29/papers/CVPR09-ScSPM.pdf

有 1300 张训练图像和 11 个类。

制作码本和稀疏编码后,

特征向量的维数为2688。

训练样本数为1370。

【问题讨论】:

  • 我认为表明概率估计缺乏收敛性的消息只是准确性低的结果。修复准确性,其他问题可能会消失。您是如何选择 SVM 的参数的?
  • 我刚刚使用了默认参数 RBF 内核 gamma 是 1/# of features
  • 其实论文作者提供了源码。他使用了其他 svm 库。但是当我采用 svm 库时,结果也和原来的一样差。我认为问题可能出在特征表示上,因为我正在处理与作者不同的数据集。

标签: matlab machine-learning computer-vision svm libsvm


【解决方案1】:

您需要进行网格搜索,或者使用交叉验证,或者使用单独的验证数据集来获得 C 和 gamma 的良好值。 Libsvm 有一个名为 grid.py 的脚本对此很有用。我注意到你用 matlab 标记了这个,使用 grid.py 需要命令行工具和 python 安装(IMO 这通常比使用 matlab 效果更好,特别是如果你有一些大型机器可以并行运行许多作业)。

如果您还没有阅读 libsvm 指南,我建议您阅读:http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf‎。

我还建议您最初使用与论文相同的数据集,因为偶尔发布的算法仅适用于为论文选择的数据集。

最后,您可以联系论文的作者。

【讨论】:

  • 谢谢。我现在使用相同的数据集并与 PASCAL 进行比较。
  • @winnerrrr 我遇到了同样的问题,如果我不指定'b -1',它就会消失。有什么见解吗?
  • @Parag 你可能应该问一个新问题。
【解决方案2】:

我向LIBSVM的作者询问了这个警告,他回答说这个警告可以忽略。

【讨论】:

    猜你喜欢
    • 2014-08-11
    • 2014-04-07
    • 2015-05-06
    • 2012-12-06
    • 2011-12-09
    • 2014-09-09
    • 2018-06-19
    • 2014-03-18
    • 2014-09-05
    相关资源
    最近更新 更多