私は 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 ガンマ = 0.0078125 が最適です。
だからgrid.py
私は少なくなります!!! デフォルトで svm train を使用する場合よりも精度が高くなります。そこで、質問が 2 つあります。
- これはどのように可能ですか??
c
およびgamma
svm train が使用するデフォルト値は何ですか?? (ドキュメントでこれを明確に見つけることはできません。ガンマ1 /機能の数とc = 1ですか?)そして、なぜ私が使用した場合よりもうまくいくのgrid.py
ですか?
easy.py
また、デフォルトよりも悪い結果が得られます。私に何ができる?