ЧТО ТАКОЕ SVM?

Машины опорных векторов (SVM) — это алгоритм обучения с учителем, используемый для классификации и регрессионного анализа, разработанный в лабораториях AT&T Владимиром Вапником и его коллегами.
SVM применялись во многих областях (биоинформатика, поиск информации, компьютерное зрение, финансы). , и т. д.). Согласно данным, производительность машин опорных векторов того же порядка или даже выше, чем у нейронной сети или смешанной модели Гаусса.

ЦЕЛЬ:

  • Знайте, как работает SVM.
  • Знать математическую модель SVM
  • Реализация SVM с помощью Python.
  • Освоение SVM Для решения реальных задач.

ТРЕБОВАНИЯ:

  • Базовые знания питона
  • Управление библиотекой SKLEARN

КАК РАБОТАЕТ SVM?

Основной принцип работы машин опорных векторов прост: создайте гиперплоскость, которая разделяет набор данных на классы. Начнем с примера задачи. Предположим, для данного набора данных вам нужно классифицировать красные треугольники из синих кругов. Ваша цель — создать линию, которая классифицирует данные по двум классам, делая различие между красными треугольниками и синими кругами.

Хотя можно предположить четкую линию, разделяющую два класса, может быть много линий, которые могут выполнять эту работу. Поэтому нет ни одной строки, по которой вы могли бы согласиться на выполнение этой задачи. Давайте визуализируем некоторые из линий, которые могут различать два класса, следующим образом:

В визуализации выше у нас есть зеленая линия и красная линия. Как вы думаете, что лучше разделит данные на два класса? Если вы выберете красную линию, то это идеальная линия, которая правильно разделит два класса. Однако мы до сих пор не осознали, что именно универсальная линия будет наиболее эффективно классифицировать наши данные.
Зеленая линия не может быть идеальной линией, потому что она слишком близка к красному классу. Следовательно, он не дает правильного обобщения, что и является нашей конечной целью.
Согласно SVM, нам нужно найти ближайшие точки двух классов. Эти точки называются опорными векторами. На следующем шаге мы находим близость между нашей плоскостью разделения и опорными векторами. Расстояние между точками и разделительной линией называется запасом. Цель алгоритма SVM — максимизировать эту же маржу. Когда запас достигает своего максимума, гиперплоскость становится оптимальной.

Модель SVM пытается увеличить расстояние между двумя классами, создавая четко определенную границу принятия решений. В приведенном выше случае наша гиперплоскость разделила данные. В то время как наши данные были в 2 измерениях, гиперплоскость была в 1 измерении. Для более высоких измерений, например, для n-мерного евклидова пространства, у нас есть n-1-мерное подмножество, которое делит пространство на две несвязанные компоненты.

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ SVM

Основная цель — найти функцию f, которая отображает x в y наборов данных:

С sing это функция активации, используемая SVM, которая дает два значения 1 или -1.
SVM пытается найти гиперплоскость с двумя опорными векторами, которые будут разделять данные.

где m — расстояние между двумя опорными векторами, которое называется границей, а ρ — расстояние между гиперплоскостью и началом координат O, выражение для m и ρописано ниже

SVM пытается найти гиперплоскость с двумя опорными векторами так, чтобы запас m был максимальным и при соблюдении условий, упомянутых ниже:

теперь вопрос в том, как найти эти коэффициенты, т.е. как найти разделители:

Расстояние между примером xi и разделителем:

  • Ближайшими примерами к гиперплоскости являются опорные векторы.
  • Поле m разделителя — это расстояние между опорными векторами и границей решения.

Обычно псевдокод SVM определяется как:

Проблема оптимизации SVM:

Теперь мы преобразуем эту задачу в задачу выпуклой оптимизации.

ОПТИМИЗАЦИЯ SVM С ИСПОЛЬЗОВАНИЕМ ГРАДИЕНТНОГО СПУСКА

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

  • Этот термин используется для максимизации маржи.
  • Этот термин используется для проверки выполнения условия (при выражении с использованием функции потери шарнира).

Правила обновления параметров w и b:

Таким образом, векторы градиента определяются следующим образом:

РЕАЛИЗАЦИЯ SVM С ПОМОЩЬЮ PYTHON:

Шаг 1: импортируйте библиотеки:

Шаг 2: инициализируйте параметры:

Шаг 3: рассчитать градиенты:

Шаг 4: Модель поезда

Шаг 5: рассчитать прогноз:

Шаг 6: вычислить оценку модели:

Шаг 7: Визуализируйте границу решения SVM:

Шаг 8: Создайте наборы данных для тестирования:

Шаг 9: тестовая модель:

ИСПОЛЬЗОВАНИЕ SVM, РАЗРАБОТАННОГО В БИБЛИОТЕКЕ SKLEARN

ПРИЛОЖЕНИЕ SVM ДЛЯ РЕАЛЬНОГО РЕШЕНИЯ ПРОБЛЕМ:

Использование SVM с набором данных по раку молочной железы, штат Висконсин:

ЗАКЛЮЧЕНИЕ.
В этом документе мы попытаемся дать вам общий обзор алгоритма метода опорных векторов, а также того, как реализовать и использовать этот алгоритм для решения реальных задач классификации.

ССЫЛКА:
1. https://medium.com/@AnasBrital98/introduction-to-support-vector-machine-2a2091401858.
2. https:/ /data-flair.training/blogs/svm-support-vector-machine-tutorial/.
3. https://en.wikipedia.org/wiki/Support-vector_machine.

КОД РЕАЛИЗАЦИИ: