libsvm 中的输出错误
Posted
技术标签:
【中文标题】libsvm 中的输出错误【英文标题】:output error in libsvm 【发布时间】: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 【参考方案1】:您可能需要在训练内核上尝试各种 C 和 gamma 值。此外,您的负样本似乎太大了,因此从它们中随机选取一个子集是一种更好的策略,就像您在方法 1 中所做的那样。
【讨论】:
以上是关于libsvm 中的输出错误的主要内容,如果未能解决你的问题,请参考以下文章