Обзор

SVM расшифровывается как «Машина опорных векторов». В этом алгоритме опорный вектор означает внешние объекты данных каждого класса данных, которые помогают спроектировать оптимальную гиперплоскость. Гиперплоскость — это инструмент, который разделяет классы в данных.

По сути, алгоритм SVM представляет собой линейный классификатор, который разделяет только два класса. Но он также может классифицировать более 2 классов. Помимо линейного классификатора, этот алгоритм также может обрабатывать нелинейные данные с помощью трюков ядра.

На приведенном выше графике показаны данные с двумя классами: синим кружком и оранжевым плюсом. Эти два класса разделены гиперплоскостью, как линейными линиями для линейных данных, так и круговыми линиями для нелинейных данных.

Алгоритм SVM Назначение

Машина опорных векторов — это контролируемый алгоритм машинного обучения для классификации и прогнозирования.

SVM работает, находя оптимальную гиперплоскость в N-мерной комнате для уточнения точки данных.

Вектор поддержки

  1. Опорный вектор является внешним объектом данных и может быть больше 1 для каждого класса данных.
  2. Эти данные очень трудно уточнить, потому что они почти совпадают с другими классами.
  3. Это критично. Он имеет функцию создания оптимальной гиперплоскости.
  4. Опорный вектор имеет 2 типа в зависимости от поля:

Эти два типа выглядят по-разному с точки зрения граничного расстояния, градиента гиперплоскости и количества опорного вектора.

Гиперплоскость

Гиперплоскость — это граница решения, которая различает два разных класса в алгоритме SVM.

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

Гиперплоскость определяется путем измерения границы гиперплоскости и нахождения ее максимальной точки. Запас — это расстояние между опорными векторами каждого класса вокруг гиперплоскости. Максимальный запас можно найти, максимизируя значение расстояния между гиперплоскостью и ее ближайшей точкой каждого класса.

Уравнение SVM

Судя по рисунку выше, это линейный классификатор из-за типа гиперплоскости в виде линии и использования 2D-пространства. Предполагается, что у нас есть два класса, как показано на рисунке выше, +1 и -1. Есть также 3 уравнения линии, которые являются оптимальной гиперплоскостью, положительной гиперплоскостью для класса +1 и отрицательной гиперплоскостью для класса -1. А также, есть уравнение для нахождения значения маржи.

Гиперплоскость в нелинейных данных

Нелинейные данные — это два класса, которые нельзя должным образом разделить в 2D-пространстве из-за перекрытия. Решение состоит в том, что мы добавляем новое измерение — третье измерение — так, чтобы оно стало трехмерным пространством с осями x, y и z. Это новое измерение (z) использует круговое уравнение z = x²+y², и, наконец, оно становится похожим на правый рисунок ниже.

Уловка ядра

  1. Линейное ядро: это самое простое и наиболее часто используемое ядро ​​в SVM. Это ядро ​​можно использовать для линейно разделимых данных в собственном пространстве признаков. Его функция — скалярное произведение двух векторов.
  2. Полиномиальное ядро: это ядро ​​вычисляет скалярное произведение между двумя векторами в постепенно увеличивающемся пространстве признаков, используя степенную функцию (например, квадратичную, кубическую и т. д.) в качестве функционального преобразования. Это позволяет SVM моделировать неразделимые данные.
  3. Ядро радиальной базовой функции (RBF): это ядро, наиболее часто используемое в SVM. Это позволяет SVM моделировать данные, которые не разделены линейно, путем преобразования их в более высокое пространство признаков с радиальной базисной функцией.
  4. Сигмовидное ядро: это ядро ​​используется для преобразования данных в более высокое пространство функций с помощью сигмовидной функции. Это ядро ​​используется реже, чем другие ядра, и используется только в определенных случаях.

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