Перейти к содержимому
Compvision.ru
privetvision

Метод опорных векторов

Recommended Posts

Я попробовал через множители Лагранжа сделать, но застрял здесь. Пробовал найти производную по лямбда 1, 2, 3 объеденить в систему в решить, но в итоге крамером не решается, т.к. бесконечное множество решений, а гаусс выдал x = -3, y = -2, но это не совпадает с решением на этом сайте. 
Screenshot_1.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот упрощенный вариант алгоритма с псевдокодом: 

http://cs229.stanford.edu/materials/smo.pdf

 

Исходник алгоритма на питоне:

https://github.com/pbharrin/machinelearninginaction/blob/master/Ch06/svmMLiA.py

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 25.05.2016 at 23:43, Smorodov сказал:

Ух!

Нарисовал последовательность шагов.

1) Берем начальную гипотезу границы (случайно).

ищем ближайшие точки из каждого набора (E и H). 

 

2) Передвигаем прямую так, чтобы выровнять расстояния.

 

3) Заново ищем ближайшие точки.

 

4) Опять выравниваем расстояния.

 

5) повторять до сходимости.

6) Нормировать коэффициенты так, чтобы расстояние до каждого класса было равно единице.

 

Вроде так должно получиться. 

Что касаемо этого метода, то вот ловушка. Screenshot_2.png

  • Like 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, видимо однострочные методы тут не прокатят.

Самое простое что видел это метод постом выше.

Можно еще взять какой нибудь другой небольшой исходник (например этот http://chasen.org/~taku/software/TinySVM/ ) и разобрать построчно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Smorodov сказал:

Вот упрощенный вариант алгоритма с псевдокодом: 

http://cs229.stanford.edu/materials/smo.pdf

 

Исходник алгоритма на питоне:

https://github.com/pbharrin/machinelearninginaction/blob/master/Ch06/svmMLiA.py

Вы лучше скажите, что делать после того как как вычислил производные по лямбда 1, 2, 3. Мне главное математически понять, а там закодить получится. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну если градиентный спуск, то двигайте понемногу лямбды в сторону, противоположную градиенту, это уменьшит целевую функцию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

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

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×