1

私は libSVM パッケージを試し、RBF と線形分類で遊んでいます。README ファイルのすべての推奨事項に従っています (と思います)。

トレーニングする大きなファイル (70K) があるので、RBF の代わりに liblinear を使用しようとしています。

唯一の問題は、トレーニング フェーズの後にモデルを取得できないことです。コマンド ラインは次のようになります。

./train -c 4 -v 5 -s 6 TrainingSet.scal TrainingSet.scal.Model

トレーニングが完了すると、精度の見積もりが得られますが、*.model ファイルを調べてテスト セットに対して使用すると、それが見つかりません。

それはパッケージのバグだと思いますか、それともここに欠けているものがありますか?

ありがとう

ラド

4

2 に答える 2

2

オプション -v 5 は、トレーニング セットに対して 5 倍の評価を行っていることを意味します。このオプションが有効な場合、liblinear は 5 倍評価を使用して誤差を推定し、モデルを出力しません。

モデルを出力する場合は、-v 5 を使用しないでください。その場合、Tt はトレーニング エラーを出力しません。ただし、liblinear-predict を使用して、テスト セットのエラーを推定できます。

于 2013-02-28T23:16:38.823 に答える
0

私は通常、コードでライブラリを直接使用しますが、あなたの場合、未定義だと思われるオプション -s 6 を使用しているため、トレーニングが実行されていないと思います。

これは使用法です:

` -s svm_type : SVM のタイプを設定 (デフォルトは 0)

0 -- C-SVC      (multi-class classification)
1 -- nu-SVC     (multi-class classification)
2 -- one-class SVM  
3 -- epsilon-SVR    (regression)
4 -- nu-SVR     (regression)

` カーネルタイプも省略しています

-t kernel_type : set type of kernel function (default 2)
0 -- linear: u'*v
1 -- polynomial: (gamma*u'*v + coef0)^degree
2 -- radial basis function: exp(-gamma*|u-v|^2)
3 -- sigmoid: tanh(gamma*u'*v + coef0)
4 -- precomputed kernel (kernel values in training_set_file)

うまくいけば、それがトリックになるでしょう。

于 2013-02-27T20:52:44.600 に答える