При каких условиях fitcsvm в Matlab не может вернуть гиперплоскость решения? - PullRequest
0 голосов
/ 21 ноября 2018

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

f = [-1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1]';
t = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]';
SVMModel = fitcsvm(t, f);

и

f = [-1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1]';
t = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]';
SVMModel = fitcsvm(t, f);

Когда вы вычисляете границу решения после выполнения первого фрагмента кода, она возвращает границу решения t=6.5, которая кажется справедливой.Для второго куска кода SVMModel.Alpha.*SVMModel.SupportVectorLabels.*SVMModel.SupportVectors оценивается как 0, а смещение равно -1, что указывает на отсутствие результата (граница удовлетворяет 0*t-1=0).

Может кто-нибудь сказать мне условия, при которых fitcsvmделает и не возвращает границы решения.Помогите!

Спасибо

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