【问题标题】:output error in libsvmlibsvm 中的输出错误
【发布时间】:2014-01-11 20:25:00
【问题描述】:

在 ubuntu 平台上使用 Libsvm,以下是我观察到的:

shuf negativeSet.scaled |head -2000 > negativeSet.scaled.2000
cp positiveSet.scaled trainingSet
cat negativeSet.scaled.2000 >> trainingSet 
cp positiveSet.weights trainingSet.weights
head -2000 negativeSet.weights >> trainingSet.weights 
./svm-train -s 0 -t 2 -h 0 -W trainingSet.weights trainingSet

输出

optimization finished, #iter = 2525
obj = -3548.316727, rho = 1.515229
nSV = 2191, nBSV = 2152
Total nSV = 2191

使用的命令:

cp positiveSet.scaled trainingSet
cat negativeSet.scaled >> trainingSet 
cp positiveSet.weights trainingSet.weights
cat negativeSet.weights >> trainingSet.weights 
#training the data set to create a model
./svm-train -s 0 -t 2 -W trainingSet.weights trainingSet

输出

optimization finished, #iter = 1
obj = nan, rho = nan
nSV = 0, nBSV = 0
Total nSV = 0

请帮我解释一下 svm 的性能差异。

【问题讨论】:

  • 请注意,您使用的是 C 和 gamma 的默认值,它们不太可能开箱即用。在第一种情况下,缩小启发式方法对您有所帮助,但对于使用默认参数不可行的底层优化问题,我并不感到惊讶。
  • 我如何确定要使用的 gamma 和 C 参数,除了命中和试验?另外是否有优化 libsvm 性能的工具或方法?谢谢
  • 您可以使用交叉验证和网格搜索,但如果您是新手,我建议您进行更多手动实验,以便了解如何更改每个参数的模型。顺便说一句,本指南是一个好的开始:csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf

标签: machine-learning artificial-intelligence svm libsvm


【解决方案1】:

您可能需要在训练内核上尝试各种 C 和 gamma 值。此外,您的负样本似乎太大了,因此从它们中随机选取一个子集是一种更好的策略,就像您在方法 1 中所做的那样。

【讨论】:

    猜你喜欢
    • 2016-07-24
    • 2012-05-24
    • 2015-09-22
    • 2013-02-12
    • 2017-09-01
    • 2012-01-08
    • 2015-03-09
    • 2017-06-11
    • 1970-01-01
    相关资源
    最近更新 更多