что означает функция, предсказывающая возвращаемое значение в OpenCV?

Я использую функцию predict в opencv для классификации своих жестов.

svm.load("train.xml");
float ret = svm.predict(mat);//mat is my feature vector

Я определил 5 меток (1.0,2.0,3.0,4.0,5.0), но на самом деле значения ret равны (0.521220207,-0.247173533,-0.127723947······)

Поэтому я в замешательстве. Как официальный документ Opencv, в моем случае функция возвращает метку класса (классификацию).

обновление: я до сих пор не знаю, почему появился этот результат. Но я выбираю новые функции для обучения моделей, и возвращаемое значение функции прогнозирования — это то, что я определил на этапе обучения (например, 1, 2, 3 и т. д.).


person Ocxs    schedule 01.05.2015    source источник
comment
мое предположение: возвращаемое значение является мерой качества/достоверности для каждого класса. может быть, они изменяются от 1,0 = лучший до -1,0 = худший. но может кто-то знает по факту.   -  person Micka    schedule 01.05.2015
comment
пожалуйста, используйте целочисленные метки для классификации. (иначе он думает, что вам нужна регрессия)   -  person berak    schedule 02.05.2015


Ответы (2)


Во время обучения SVM вы назначаете метку каждому классу обучающих данных.

Когда вы классифицируете образец, возвращенный результат будет совпадать с одной из этих меток, сообщающих вам, к какому классу, по прогнозам, относится образец.

Здесь есть еще документация, которая может помочь:

http://docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html

person user3510227    schedule 01.05.2015

С помощью машин опорных векторов (SVM) у вас есть функция обучения и функция прогнозирования. Функция обучения заключается в обучении ваших данных и сохранении этой информации в файле xml (это облегчает процесс прогнозирования в случае, если вы используете огромное количество обучающих данных и вам необходимо выполнить функцию прогнозирования в другом проекте).

Пример: 20 изображений на класс в вашем случае: 20 * 5 = 100 обучающих изображений, каждое изображение связано с меткой соответствующего класса, и вся эта информация хранится в train.xml)

Для функции прогнозирования она сообщает вам, какую метку присвоить тестовому изображению в соответствии с вашими тренировочными ДАННЫМИ (дырявая работа, которую вы проделали в процессе обучения). Результаты вашего прогноза могут быть хорошими, а могут быть плохими, я думаю, все дело в ваших данных обучения.

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

person BalamGM    schedule 01.05.2015