Примечание. Поскольку это большая тема, я напишу серию из 3–4 постов, чтобы осветить ее.

Что такое машина опорных векторов

Это алгоритм классификатора. Посмотрите на график ниже. Мы видим, что данные на графике разбиты на 2 кластера. Допустим, нижний левый кластер называется кластером «+», а верхний правый называется кластером «-». Мы хотим провести линию так, чтобы эти 2 кластера были четко разделены. Как только мы нарисуем эту линию для новых данных, мы сможем выяснить, к какому кластеру они относятся.

Вопрос в том, где мы будем проводить такую ​​линию?

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

Давайте рассмотрим 3 варианта

  1. Должны ли мы провести линию, ближайшую к знаку плюс

2. Должны ли мы провести линию, ближайшую к знаку минус

3) Или мы должны провести черту где-то посередине?

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

Но где посередине? Чтобы быть на более безопасной стороне, точно посередине.

Итак, повторяю, мы только что пришли к выводам, приведенным ниже, в отношении проведения линии, разделяющей рассматриваемые кластеры,

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

2. От каждой из этих ближайших точек (обозначены зеленым) мы должны максимально увеличить расстояние линии.

Как только мы узнаем такую ​​строку, она становится нашим классификатором. Для любого нового фрагмента данных мы сможем сказать, на какой стороне линии находятся эти данные. Если он слева, то он относится к классу «+», а если с правой стороны, то он принадлежит к классу «-».

Вот и все. Концептуально это и есть SVM. Теперь нам нужно посмотреть, как нарисовать линию математически.

Основы

Прежде чем мы углубимся в математику SVM. Ниже мы должны рассмотреть две темы, которые помогут нам впоследствии правильно понять SVM.

  1. Множитель Лагранжа
  2. Расстояние точки от плоскости

В этом посте обсуждается только множитель Лагранжа. В следующем посте речь пойдет о расстоянии точки от плоскости.

Множитель Лагранжа

Что такое множитель Лагранжа и почему мы его используем

По данным Академии Хана

«Метод множителя Лагранжа позволяет найти максимум или минимум функции нескольких переменных f(x,y,…), когда существует некоторое ограничение на допустимые входные значения. использовать."

Проще говоря, когда нам нужно найти максимум или минимум на основе некоторых ограничений, мы используем множители Лагранжа.

Давайте разберемся на примере.

Проблема

Предположим, вы наняли такси в городе и у вас есть водитель (водители) для их вождения. Есть затраты на топливо и время водителя. Вы хотите узнать, какой максимальный доход вы можете получить от этого бизнеса.

Бюджет

Но у вас есть ограничение, вы можете сэкономить всего 50000 рупий и на топливо, и на оплату услуг водителя.

Как это работает

Допустим, наша функция дохода (это уравнение было сформировано на основе, возможно, на основе опыта или изучения существующих данных):

R = 2,5 * расстояние * оплата водителя

Расстояние = расстояние, пройденное такси (в месяц)

Зарплата водителя = зарплата водителя в час

Предполагать,

d = пройденное расстояние в км

s = время, затраченное водителем в часах

Таким образом, мы можем переписать уравнение дохода как

R = 2.5d * s

Мы хотим проверить максимальное значение R.

Ограничения

скажем

70 рупий = Расход топлива на километр

300 рупий = гонорары водителя за час

Итак, наше ограничение

70* d + 300 * s = 50000

70* d + 300 * s — 50000 = 0

Множитель Лагранжа

Короче

  • Мы вводим новую переменную с именем k.
  • Создадим новую функцию Лагранжа L в виде

L = f(d,s) — k( g(d,s) -c)

  • Частная производная L по каждому d, s и k равна нулю.
  • Таким образом, мы получаем значения d, s и k

В действии

L = 2.5d * s- k(70* d + 300 * s — 50000)

Теперь получите частные производные по каждому d, s и k

Частная производная по d

2.5 * s — 70 = 0

Частная производная по с

2.5d — 300= 0

Частная производная по k

70* d + 300 * s — 50000 = 0

Теперь легко решить эти уравнения

s = 70 k / 2.5

d = 300 k / 2.5

k = (50000 * 2.5) / 42000 = 2.98

s = 70*2.98/ 2.5 = 83.44

d = 300 *2.98 / 2.5 = 357

Макс. R = 2,5 * 83,44 * 357 = 74 470,2

Таким образом, при вложении 50 000 000 и заданных ограничениях бизнесмен может заработать ~74,5 000 000 рублей.

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

«Наличие максимального расстояния от ближайших точек каждого кластера».

Максимум выделен, так как для этого будут использоваться множители Лагранжа.