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

Введение в SVM

SVM впервые был представлен в начале 1980-х годов Владимиром Вапником и Алексеем Червоненкисом. В отличие от других алгоритмов классификации, SVM не требует предварительной обработки или нормализации набора данных. Идея состоит в том, что каждое наблюдение представляет собой точку в пространстве, поэтому существует два разных типа точек: опорные векторы и неопорные векторы. Граница классификации разделяет эти два типа точек с обеих сторон. Опорный вектор — это любая точка, которая имеет более высокое значение, чем другие точки на одной стороне, но имеет более низкое значение, чем другие точки на противоположной стороне. Чтобы классифицировать наблюдение, просто определяется, находится ли оно ближе к тому или иному типу, что можно сделать, например, взяв его расстояние от граничной линии.

Было доказано, что машины опорных векторов являются очень эффективными моделями машинного обучения для многих типов задач классификации. Они быстрые, надежные, масштабируемые и не требуют больших вычислительных ресурсов. Их недостатки заключаются в том, что у них могут возникнуть проблемы с нелинейными наборами данных, и они чувствительны к выбору параметров, поэтому важно правильно их настроить. Тем не менее, существует огромное количество исследований о том, как найти хорошие настройки параметров (гиперпараметры) для моделей SVM, что является темой для другого поста. Существует множество пакетов, поддерживающих SVM, таких как LIBSVM (C++) или LibSVM (Python).

Некоторые важные термины, касающиеся SVM

Граница принятия решения

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

В алгоритме машины опорных векторов (SVM) граница решения может быть линией или плоскостью, которая разделяет пространство данных на две области, одна из которых связана с меткой класса +1, а другая — с меткой класса -1. Алгоритм SVM находит оптимальную границу решения, которая максимизирует разницу между двумя областями.

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

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

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

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

Предельное расстояние

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

Линейная разделимость

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

Нелинейная разделимость

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

Функция ядра

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

Как работает SVM?

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

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

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

Граница решения или гиперплоскость решения, включающая все опорные векторы, максимизирует разницу между двумя классами. Фактически, основная цель SVM состоит в том, чтобы максимально увеличить предельное расстояние (как показано на графике), чтобы уменьшить ошибку обобщения. Это означает, что увеличение предельного расстояния улучшит производительность модели на невидимых данных. Итак, здесь происходит то, что когда маржинальное расстояние увеличивается, вероятность предсказания неправильного класса уменьшается, поскольку граница решения теперь находится далеко от точек двух отдельных классов.

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

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

Получив границу решения, мы можем использовать ее для прогнозирования класса новых точек данных. Для этого нам просто нужно увидеть, на какую сторону границы решения попадает новая точка данных. Если он падает на сторону класса, который мы пытаемся предсказать, то мы предсказываем этот класс для новой точки данных.

Приложения SVM

  • Некоторые приложения SVM включают:
  • Анализ тональности: машина опорных векторов может использоваться для классификации тональности текста как положительной, отрицательной или нейтральной.
  • Обнаружение спама: может использоваться для классификации электронных писем как спама или не спама.
  • Распознавание изображений: может использоваться для идентификации объектов на изображениях.
  • Обнаружение мошенничества: может использоваться для выявления мошеннических действий.
  • Прогноз акций: может использоваться для прогнозирования будущих цен на акции.
  • Прогноз погоды: может использоваться для прогнозирования будущих погодных условий.
  • Диагностика заболеваний: может использоваться для диагностики таких заболеваний, как рак.

Заключение

Итак, в этой статье мы изучили основы SVM, включая введение, основные термины SVM, работу SVM и некоторые приложения SVM. Полное объяснение, включая математику и реализацию в python, будет в следующих постах.

Первоначально опубликовано на https://www.pycodemates.com 24 июля 2022 г.