Результат обучения LIBLINEAR

Я пробую пакет libSVM, играю с RBF и линейной классификацией, и я следовал (я думаю) всем рекомендациям в их файлах README.

У меня есть большой файл для обучения (70 КБ), поэтому я пытаюсь использовать liblinear вместо RBF.

Единственная проблема в том, что я не могу получить модель после этапа обучения, моя командная строка выглядит так:

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

После завершения обучения у меня есть оценка точности, но затем, когда я просматриваю файл *.model, чтобы использовать его для своего набора тестов, я просто не нахожу его.

Как вы думаете, это ошибка в пакете или я что-то здесь упускаю?

Спасибо

Рад


person Rad    schedule 27.02.2013    source источник


Ответы (2)


Опция -v 5 означает, что вы выполняете 5-кратную оценку на тренировочном наборе. Если эта опция включена, то liblinear оценивает ошибку, используя 5-кратную оценку, и не выводит модель.

Если вы хотите вывести модель, не используйте -v 5. В этом случае Tt не выводит ошибку обучения. Но вы можете использовать liblinear-predict для оценки ошибки в тестовом наборе.

person usamec    schedule 28.02.2013

Обычно я использую библиотеку непосредственно в коде, но я думаю, что в вашем случае обучение не выполняется, потому что вы используете параметр -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)

Надеюсь, это поможет.

person Pedrom    schedule 27.02.2013
comment
Но я использую пакет liblinear ссылка, а не libsvm как таковой, их В программе ./train есть значение -s, равное 13, как указано здесь ссылка - person Rad; 28.02.2013
comment
@Rad Хм, такая маленькая деталь: P Я не использовал эту версию библиотеки, но я посмотрю и дам вам знать. Вы уже пробовали с обычной libsvm? - person Pedrom; 28.02.2013
comment
Я понял, что нам не нужно использовать опцию -v, когда мы тренируемся после знания правильных параметров (нет необходимости в перекрестной проверке), тогда у нас есть выходная модель. - person Rad; 28.02.2013
comment
Это потрясающе! вы должны написать ответ и утвердить его для будущих ссылок :) - person Pedrom; 28.02.2013