【发布时间】: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