LIBSVM svmpredict: зачем нужен testLabel?

Я новичок как в Matlab, так и в libsvm. У меня есть мешок слов для 8 разных объектов размером 8*1000. Я тренировал каждого из них следующим образом:

buildingStruct = libsvm_svmtrain(bow,[1;0;0;0;0;0;0;0],'-b 1')

После этого я хотел проверить это с помощью лука (1, :), который является обучающими данными для buildingStruct. то есть:

[predict_label, accuracy, prob_values] = libsvm_svmpredict(testLabel, bow(1,:), buildingStruct, '-b  1');

В этом смысле; Я не понимаю, что я должен был дать testLabel. А также, если я делаю testLabel 1, например, я получаю prob_values ​​размером 5. Почему это 5 и почему они не близки к 100, так как я тестирую данные поезда? Также точность подобна [0;9;NaN]. Что это обозначает?

Спасибо


person Igor Snipet    schedule 30.12.2015    source источник


Ответы (1)


Вы должны изменить порядок параметров, чтобы он стал таким:

buildingStruct = libsvm_svmtrain([1;0;0;0;0;0;0;0],bow,'-b 1')

Тогда это даст вам 1,00 проб. Если вы не знаете тестовых меток, просто задайте случайное число в качестве параметра. Для точности: вектор, включающий точность (для классификации), среднеквадратичную ошибку и квадрат коэффициента корреляции (для регрессии).

person Sami    schedule 31.12.2015