#20. Реализация метода опорных векторов (SVM) | Машинное обучение
Вставка
- Опубліковано 13 кві 2022
- Условие Каруша-Куна-Таккера с поиском седловой точки функции Лагранжа, как вариант решения оптимизационной задачи метода опорных векторов. Реализация SVM с помощью библиотеки Scikit-Learn на Python.
Инфо-сайт: proproprogs.ru/ml
Телеграм-канал: t.me/machine_learning_selfedu
machine_learning_20_1_svm.py, machine_learning_20_2_svm.py: github.com/selfedu-rus/machin...
Умница 🎉 пусть твои стремления к знаниям будут бесконечны🎉
огромное Вам спасибо!
Здравствуйте! Спасибо огромное за Ваши видео! Хотелось уточнить момент по уравнению разделяющей прямой для данного примера. В примере смещение "w0" в любом случае оч малое w0 = 0.0что-тотам.. и разница между вариантами не заметна на графике. Но в другом примере это может иметь значение.
Какой все-таки вид имеет уравнению разделяющей прямой:
1) w1x1 + w2x2 + w0 = 0 и тогда код должен быть line_y = [-x*w[0]/w[1] - w[2]/w[1] for x in line_x]
2) w1x1 + w2x2 - w0 = 0 тогда код должен быть line_y = [-x*w[0]/w[1] + w[2]/w[1] for x in line_x]
3) вариант кода в видео.
По идее должен быть вариант 2.. или я что-то не так понял ))
То куда смещение делается задается значением w0
👍👍👍👍👍
Не могли бы вы записать видео про линейный квадратичный регулятор?
На два звена актуатора по типу тележка с шестом
@selfedu Вопрос по прогам machine_learning_20_1 и ...2. Там ты применяешь два варианта классификатора: svm.LinearSVC для линейно разделимого случая и svm.SVC для общего случая. Методом lin_clf.coef_[0] ты получаешь вектор коэффициентов w из lin_clf. Но такой же метод clf.coef_[0] для clf дает некорректные коэффициенты - построенная по ним разделяющая прямая проходит неверно, хотя сам классификатор clf.predict() работает правильно. Причем и в лин.разд. и в лин.неразд. случаях. Что не так, ошибка в библиотеке?
Да, да, есть такое, уже после записи видео узнал и заметил это! Коэффициенты нужно по другому определять, было где-то на stackflow об этом...
@@selfedu_rusкаким образом тогда необходимо находить весовые коэффициенты для линейно неразделимого случая?
@selfedu Хотел бы понять про SVM. В прошлом занятии мы пришли к функционалу из суммы функций потерь (hinge loss) и L2-регуляризатора. Решение градиентным спуском по всей выборке даст максимальную широкую полосу между классами? Что в таком случае опорные вектора? Или ключом является именно отбор образов через коэффициенты лямбда? Или это только оптимизация?
опорные векторы - это все, у которых лямбда отлична от нуля и они могут быть граничными или ошибочными
@@selfedu_rus Это понятно, но лямбды появляются лишь в этом уроке на 3:00 в решении по условию ККТ: w=Sum(лi*yi*xi). Но до этого в предыдущем уроке выводился функционал Sum(max(0,1-Mi))+1/2C*|w|^2. И ты говорил, что в нем и есть суть метода опорных векторов: hinge-loss + L2-рег. Если просто оптимизировать его субградиентным методом по всей выборке - будет ли это реализацией SVM? Или тогда надо еще нормировать отступы на каждом шаге, чтобы минимальный по выборке был =1?
@@YbisZX да, они появляются, как элемент решения системы, как именно решать не рассматривал, т.к. не стал слишком погружаться в математику