privetvision 4 Жалоба Опубликовано May 29, 2016 Я попробовал через множители Лагранжа сделать, но застрял здесь. Пробовал найти производную по лямбда 1, 2, 3 объеденить в систему в решить, но в итоге крамером не решается, т.к. бесконечное множество решений, а гаусс выдал x = -3, y = -2, но это не совпадает с решением на этом сайте. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
privetvision 4 Жалоба Опубликовано May 30, 2016 Народ хелп... Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 30, 2016 Вот упрощенный вариант алгоритма с псевдокодом: http://cs229.stanford.edu/materials/smo.pdf Исходник алгоритма на питоне: https://github.com/pbharrin/machinelearninginaction/blob/master/Ch06/svmMLiA.py Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
privetvision 4 Жалоба Опубликовано May 30, 2016 В 25.05.2016 at 23:43, Smorodov сказал: Ух! Нарисовал последовательность шагов. 1) Берем начальную гипотезу границы (случайно). ищем ближайшие точки из каждого набора (E и H). 2) Передвигаем прямую так, чтобы выровнять расстояния. 3) Заново ищем ближайшие точки. 4) Опять выравниваем расстояния. 5) повторять до сходимости. 6) Нормировать коэффициенты так, чтобы расстояние до каждого класса было равно единице. Вроде так должно получиться. Что касаемо этого метода, то вот ловушка. 2 Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 30, 2016 Да, видимо однострочные методы тут не прокатят. Самое простое что видел это метод постом выше. Можно еще взять какой нибудь другой небольшой исходник (например этот http://chasen.org/~taku/software/TinySVM/ ) и разобрать построчно. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
privetvision 4 Жалоба Опубликовано May 30, 2016 1 час назад, Smorodov сказал: Вот упрощенный вариант алгоритма с псевдокодом: http://cs229.stanford.edu/materials/smo.pdf Исходник алгоритма на питоне: https://github.com/pbharrin/machinelearninginaction/blob/master/Ch06/svmMLiA.py Вы лучше скажите, что делать после того как как вычислил производные по лямбда 1, 2, 3. Мне главное математически понять, а там закодить получится. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Smorodov 579 Жалоба Опубликовано May 30, 2016 Ну если градиентный спуск, то двигайте понемногу лямбды в сторону, противоположную градиенту, это уменьшит целевую функцию. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах