Обзор
SVM расшифровывается как «Машина опорных векторов». В этом алгоритме опорный вектор означает внешние объекты данных каждого класса данных, которые помогают спроектировать оптимальную гиперплоскость. Гиперплоскость — это инструмент, который разделяет классы в данных.
По сути, алгоритм SVM представляет собой линейный классификатор, который разделяет только два класса. Но он также может классифицировать более 2 классов. Помимо линейного классификатора, этот алгоритм также может обрабатывать нелинейные данные с помощью трюков ядра.
На приведенном выше графике показаны данные с двумя классами: синим кружком и оранжевым плюсом. Эти два класса разделены гиперплоскостью, как линейными линиями для линейных данных, так и круговыми линиями для нелинейных данных.
Алгоритм SVM Назначение
Машина опорных векторов — это контролируемый алгоритм машинного обучения для классификации и прогнозирования.
SVM работает, находя оптимальную гиперплоскость в N-мерной комнате для уточнения точки данных.
Вектор поддержки
- Опорный вектор является внешним объектом данных и может быть больше 1 для каждого класса данных.
- Эти данные очень трудно уточнить, потому что они почти совпадают с другими классами.
- Это критично. Он имеет функцию создания оптимальной гиперплоскости.
- Опорный вектор имеет 2 типа в зависимости от поля:
Эти два типа выглядят по-разному с точки зрения граничного расстояния, градиента гиперплоскости и количества опорного вектора.
Гиперплоскость
Гиперплоскость — это граница решения, которая различает два разных класса в алгоритме SVM.
Левое изображение выше показывает нам, что есть несколько гиперплоскостей вероятности, которые могут быть созданы с помощью SVM, но нам нужно найти оптимальную с максимальным запасом, который показан на правом изображении выше.
Гиперплоскость определяется путем измерения границы гиперплоскости и нахождения ее максимальной точки. Запас — это расстояние между опорными векторами каждого класса вокруг гиперплоскости. Максимальный запас можно найти, максимизируя значение расстояния между гиперплоскостью и ее ближайшей точкой каждого класса.
Уравнение SVM
Судя по рисунку выше, это линейный классификатор из-за типа гиперплоскости в виде линии и использования 2D-пространства. Предполагается, что у нас есть два класса, как показано на рисунке выше, +1 и -1. Есть также 3 уравнения линии, которые являются оптимальной гиперплоскостью, положительной гиперплоскостью для класса +1 и отрицательной гиперплоскостью для класса -1. А также, есть уравнение для нахождения значения маржи.
Гиперплоскость в нелинейных данных
Нелинейные данные — это два класса, которые нельзя должным образом разделить в 2D-пространстве из-за перекрытия. Решение состоит в том, что мы добавляем новое измерение — третье измерение — так, чтобы оно стало трехмерным пространством с осями x, y и z. Это новое измерение (z) использует круговое уравнение z = x²+y², и, наконец, оно становится похожим на правый рисунок ниже.
Уловка ядра
- Линейное ядро: это самое простое и наиболее часто используемое ядро в SVM. Это ядро можно использовать для линейно разделимых данных в собственном пространстве признаков. Его функция — скалярное произведение двух векторов.
- Полиномиальное ядро: это ядро вычисляет скалярное произведение между двумя векторами в постепенно увеличивающемся пространстве признаков, используя степенную функцию (например, квадратичную, кубическую и т. д.) в качестве функционального преобразования. Это позволяет SVM моделировать неразделимые данные.
- Ядро радиальной базовой функции (RBF): это ядро, наиболее часто используемое в SVM. Это позволяет SVM моделировать данные, которые не разделены линейно, путем преобразования их в более высокое пространство признаков с радиальной базисной функцией.
- Сигмовидное ядро: это ядро используется для преобразования данных в более высокое пространство функций с помощью сигмовидной функции. Это ядро используется реже, чем другие ядра, и используется только в определенных случаях.
Все эти типы ядра используются для преобразования данных в более высокое функциональное пространство, чтобы SVM лучше разделяла данные. Выбор правильного ядра зависит от характера данных и решаемой задачи.