#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...

КОМЕНТАРІ • 13

  • @user-nb4ps3kk4w
    @user-nb4ps3kk4w Рік тому +7

    Умница 🎉 пусть твои стремления к знаниям будут бесконечны🎉

  • @user-qj6tk5fw9p
    @user-qj6tk5fw9p 3 місяці тому +1

    огромное Вам спасибо!

  • @vz2590
    @vz2590 9 місяців тому +1

    Здравствуйте! Спасибо огромное за Ваши видео! Хотелось уточнить момент по уравнению разделяющей прямой для данного примера. В примере смещение "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.. или я что-то не так понял ))

    • @b.f.9484
      @b.f.9484 5 місяців тому

      То куда смещение делается задается значением w0

  • @impellergimpeller5133
    @impellergimpeller5133 2 роки тому +2

    👍👍👍👍👍

  • @user-uf3qh3fr7d
    @user-uf3qh3fr7d Рік тому +1

    Не могли бы вы записать видео про линейный квадратичный регулятор?
    На два звена актуатора по типу тележка с шестом

  • @YbisZX
    @YbisZX Рік тому +2

    @selfedu Вопрос по прогам machine_learning_20_1 и ...2. Там ты применяешь два варианта классификатора: svm.LinearSVC для линейно разделимого случая и svm.SVC для общего случая. Методом lin_clf.coef_[0] ты получаешь вектор коэффициентов w из lin_clf. Но такой же метод clf.coef_[0] для clf дает некорректные коэффициенты - построенная по ним разделяющая прямая проходит неверно, хотя сам классификатор clf.predict() работает правильно. Причем и в лин.разд. и в лин.неразд. случаях. Что не так, ошибка в библиотеке?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Да, да, есть такое, уже после записи видео узнал и заметил это! Коэффициенты нужно по другому определять, было где-то на stackflow об этом...

    • @user-sv5wz2lo1b
      @user-sv5wz2lo1b 2 місяці тому +1

      ​@@selfedu_rusкаким образом тогда необходимо находить весовые коэффициенты для линейно неразделимого случая?

  • @YbisZX
    @YbisZX Рік тому +1

    @selfedu Хотел бы понять про SVM. В прошлом занятии мы пришли к функционалу из суммы функций потерь (hinge loss) и L2-регуляризатора. Решение градиентным спуском по всей выборке даст максимальную широкую полосу между классами? Что в таком случае опорные вектора? Или ключом является именно отбор образов через коэффициенты лямбда? Или это только оптимизация?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      опорные векторы - это все, у которых лямбда отлична от нуля и они могут быть граничными или ошибочными

    • @YbisZX
      @YbisZX Рік тому

      @@selfedu_rus Это понятно, но лямбды появляются лишь в этом уроке на 3:00 в решении по условию ККТ: w=Sum(лi*yi*xi). Но до этого в предыдущем уроке выводился функционал Sum(max(0,1-Mi))+1/2C*|w|^2. И ты говорил, что в нем и есть суть метода опорных векторов: hinge-loss + L2-рег. Если просто оптимизировать его субградиентным методом по всей выборке - будет ли это реализацией SVM? Или тогда надо еще нормировать отступы на каждом шаге, чтобы минимальный по выборке был =1?

    • @selfedu_rus
      @selfedu_rus  Рік тому

      @@YbisZX да, они появляются, как элемент решения системы, как именно решать не рассматривал, т.к. не стал слишком погружаться в математику