1

我遇到了 libsvm 的问题,希望您能帮助我

当我使用带有默认参数的 svm-train.exe 时...

svm-train  dikomou
svm-predict  dikomou.t  dikomou.model   dikomou.t.predict

我得到准确率 84.72%

当我使用缩放 [-1, 1] 以及像这样的训练和测试文件相同的缩放......

svm-scale -l -1 -u 1 -s range1 dikomou > dikomou.scale
svm-scale -r range1 dikomou.t > dikomou.t.scale
svm-train dikomou.scale
svm-predict dikomou.t.scale dikomou.scale.model dikomou.t.predict

我得到的准确率较低 81.94%

如果我对 0 到 1 进行缩放,我会得到 87.5% 的准确率

所以我保持 0 到 1 的比例。

但是当我使用grid.py这样的 0 到 1 缩放数据时

grid.py dikomou.scale
.. 
8  0.0078125   84 ,25 

$ ./svm-train -c 8 -g 0.0078125 dikomou.scale
$ ./svm-predict dikomou.t.scale dikomou.scale.model dikomou.t.predict

我得到了 84.25% 的交叉验证率和 79.166% 的总准确率,最好给定 c = 8 gamma= 0.0078125

所以grid.py给我的少了!!!精度高于使用默认值的 svm 训练的精度。所以我有两个问题。

  1. 这怎么可能??
  2. svm train 使用c的默认值是什么?gamma(我无法在文档中清楚地找到这一点。是 gamma 1/特征数和 c = 1?)为什么比我使用grid.py?

easy.py也给了我比默认值更差的结果。我能做些什么?

4

0 回答 0