2013-02-27 93 views
1

我正在嘗試使用RBF和線性分類的libSVM軟件包,並且我在他們的自述文件中關注了(我認爲)所有建議。LIBLINEAR的訓練輸出

我有一個大文件來訓練,(70K),所以我想用liblinear而不是RBF。

唯一的問題是,我無法得到訓練階段後的模型,我的命令行看起來是這樣的:培訓完成

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

後,我有準確的估計,但後來當我看看* .model文件來對我的測試集使用它,我根本找不到它。

你認爲這是包中的一個錯誤還是我在這裏錯過了一些東西?

感謝

拉德

回答

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) 

希望這會製造詭計。

+0

但我使用liblinear軟件包[鏈接](http://www.csie.ntu.edu.tw/~cjlin/liblinear/)而不是libsvm本身,他們的./train程序有-s要13在這裏提到[鏈接](https://github.com/ninjin/liblinear/blob/master/README) – Rad 2013-02-27 21:16:16

+0

@Rad嗯,這樣一個小細節:PI沒有使用該版本的庫,但我會給它一個看,讓你知道。你有沒有試過正常的libsvm? – Pedrom 2013-02-27 22:22:21

+0

我知道當我們知道正確的參數後(不需要交叉驗證),我們不需要使用-v選項,那麼我們有輸出模型 – Rad 2013-02-28 14:23:57

2

選項-v 5表示您正在對訓練集進行5倍評估。如果啓用此選項,那麼liblinear會使用5倍評估來估計錯誤,並且不會輸出模型。

如果要輸出模型,則不要使用-v 5.在這種情況下,Tt不會輸出訓練錯誤。但是您可以使用liblinear-predict來估計測試集上的錯誤。