У меня вопрос о методе svm_predict () в libsvm.
В README есть этот пример кода быстрого запуска:
>>> y, x = [1,-1], [{1:1, 3:1}, {1:-1,3:-1}]
>>> prob = svm_problem(y, x)
>>> param = svm_parameter('-c 4 -b 1')
>>> m = svm_train(prob, param)
>>> p_label, p_acc, p_val = svm_predict(y, x, m)
Теперь я понимаю, что y - это список категорий, связанных со словарями в х. Я также понимаю часть svm_train.
Часть, которая не имеет смысла, заключается в том, что в svm_predict я должен предоставить «истинные значения» из y вместе с тестовыми данными в x. Я думал, что идея заключалась в том, что я не знаю классификацию тестовых данных заранее.
если мои обучающие данные:
y = [1, 2, 3]
x = [{1:1}, {1:10}, {1:20}]
, но мои тестовые данные:
z = [{1:4}, {1:12}, {1:19}]
Тогда почему я должен передавать true значения z в svm_predict (), например:
a, b, c = svm_predict(y, z, m)
Я не собираюсь знать истинные значения z - для этого и предназначен прогноз. Должен ли я просто поставить произвольные значения классификации для y при выполнении прогноза, или мне что-то совсем не хватает?
Всем спасибо