Может ли решение SVM измениться после перетасовки входов? - PullRequest
3 голосов
/ 06 октября 2011

При обучении метода опорных векторов (SVM) для классификации с точно такими же данными я получаю разные результаты в зависимости от порядка входных данных, т.е. если я перетасовываю данные, я получаю разные SVM.

Если я правильно понял теорию, решение SVM должно быть одинаковым независимо от порядка входов, так почему же я получаю разные результаты? Есть ли в SVM "детали" реализации, почему тасование могло бы изменить решение? Я уже проверил свой код несколько раз, потому что я думаю, что это пахнет.

Я использую реализацию SVM в OpenCV.

РЕДАКТИРОВАТЬ: в этом случае, тасуя, я имею в виду изменение порядка точек данных, а не функций.

Ответы [ 2 ]

1 голос
/ 07 октября 2011

SVM предназначен для решения задачи выпуклой оптимизации, поэтому максимум уникален. Это означает, что любые алгоритмы случайной оптимизации решат проблему очень близко к единственному оптимальному решению. И тасование не может изменить результат выше точности операции с плавающей точкой.

1 голос
/ 06 октября 2011

Я не знаком с реализацией OpenCV. Но сделайте это: выполните несколько попыток на точно таком же наборе данных - без перемешивания, в том же порядке, те же точки данных. Посмотрите, изменится ли SVM. Очевидно, в теории это не должно быть. Но может случиться так, что где-то в реализации есть небольшой шаг рандомизации, который выдает разные выходные данные для одного и того же входа.

Редактировать: Крис А. спрашивает, соответствуют ли векторы объектов своим собственным меткам после перетасовки? Если нет, то это, очевидно, разрушит ваши результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...