Машина опорных векторов (SVM) в машинном обучении
Опубликовано: 2023-01-04Метод опорных векторов — один из самых популярных алгоритмов машинного обучения. Он эффективен и может обучаться на ограниченных наборах данных. Но что это?
Что такое машина опорных векторов (SVM)?
Машина опорных векторов — это алгоритм машинного обучения, который использует обучение с учителем для создания модели для бинарной классификации. Это полный рот. В этой статье будет рассказано о SVM и о том, как он связан с обработкой естественного языка. Но сначала давайте проанализируем, как работает машина опорных векторов.
Как работает SVM?
Рассмотрим простую задачу классификации, в которой у нас есть данные с двумя признаками, x и y, и одним выходом — классификация красного или синего цвета. Мы можем построить воображаемый набор данных, который выглядит так:
Учитывая такие данные, задача состоит в том, чтобы создать границу принятия решения. Граница решения — это линия, которая разделяет два класса наших точек данных. Это тот же набор данных, но с границей решения:
С помощью этой границы решения мы можем затем делать прогнозы, к какому классу принадлежит точка данных, учитывая, где она находится относительно границы решения. Алгоритм машины опорных векторов создает границу наилучшего решения, которая будет использоваться для классификации точек.
Но что мы подразумеваем под границей наилучшего решения?
Можно утверждать, что лучшей границей решения является та, которая максимизирует свое расстояние от любого из опорных векторов. Опорные векторы — это точки данных любого класса, наиболее близкие к противоположному классу. Эти точки данных представляют наибольший риск неправильной классификации из-за их близости к другому классу.
Таким образом, обучение машины опорных векторов включает в себя попытку найти линию, которая максимизирует разницу между опорными векторами.
Также важно отметить, что, поскольку граница решения расположена относительно опорных векторов, они являются единственными детерминантами положения границы решения. Следовательно, остальные точки данных являются избыточными. Таким образом, для обучения требуются только опорные векторы.
В этом примере сформированная граница решения представляет собой прямую линию. Это только потому, что набор данных имеет только две функции. Когда в наборе данных есть три объекта, сформированная граница решения представляет собой плоскость, а не линию. А когда он имеет четыре или более функций, граница решения называется гиперплоскостью.
Нелинейно разделимые данные
В приведенном выше примере рассматриваются очень простые данные, которые при построении графика могут быть разделены линейной границей решения. Рассмотрим другой случай, когда данные отображаются следующим образом:
В этом случае разделение данных линией невозможно. Но мы можем создать еще одну функцию, z. И эту особенность можно определить уравнением: z = x^2 + y^2. Мы можем добавить z в качестве третьей оси к плоскости, чтобы сделать ее трехмерной.
Когда мы смотрим на 3D-график под таким углом, что ось x горизонтальна, а ось z вертикальна, это представление выглядит примерно так:
Z-значение показывает, насколько далеко точка находится от начала координат относительно других точек старой плоскости XY. В результате синие точки ближе к началу координат имеют низкие значения z.
В то время как красные точки, расположенные дальше от начала координат, имели более высокие z-значения, их сопоставление с их z-значениями дает нам четкую классификацию, которую можно разграничить линейной границей решения, как показано на рисунке.
Это мощная идея, которая используется в машинах опорных векторов. В более общем смысле это идея преобразования измерений в большее количество измерений, чтобы точки данных можно было разделить линейной границей. За это отвечают функции ядра. Существует много функций ядра, таких как сигмовидная, линейная, нелинейная и RBF.
Чтобы сделать сопоставление этих функций более эффективным, SVM использует трюк ядра.
SVM в машинном обучении
Машина опорных векторов — один из многих алгоритмов, используемых в машинном обучении наряду с популярными, такими как деревья решений и нейронные сети. Его предпочитают, потому что он хорошо работает с меньшим количеством данных, чем другие алгоритмы. Он обычно используется для выполнения следующих действий:
- Классификация текста: классификация текстовых данных, таких как комментарии и обзоры, по одной или нескольким категориям.
- Обнаружение лиц : анализ изображений для обнаружения лиц для выполнения таких действий, как добавление фильтров для дополненной реальности.
- Классификация изображений : машины опорных векторов могут эффективно классифицировать изображения по сравнению с другими подходами.
Проблема классификации текста
Интернет наполнен огромным количеством текстовых данных. Однако большая часть этих данных неструктурирована и немаркирована. Чтобы лучше использовать эти текстовые данные и лучше их понимать, необходима классификация. Примеры случаев, когда текст классифицируется, включают:
- Когда твиты распределяются по темам, чтобы люди могли следить за интересующими их темами
- Когда электронное письмо относится к категории социальных сетей, рекламных акций или спама.
- Когда комментарии классифицируются как разжигающие ненависть или непристойные на общедоступных форумах
Как SVM работает с классификацией естественного языка
Метод опорных векторов используется для классификации текста на текст, относящийся к определенной теме, и текст, не относящийся к этой теме. Это достигается путем предварительного преобразования и представления текстовых данных в набор данных с несколькими функциями.
Один из способов сделать это — создать функции для каждого слова в наборе данных. Затем для каждой точки текстовых данных вы записываете, сколько раз встречается каждое слово. Итак, предположим, что в наборе данных встречаются уникальные слова; у вас будут функции в наборе данных.
Кроме того, вы предоставите классификации для этих точек данных. Хотя эти классификации помечены текстом, в большинстве реализаций SVM ожидаются числовые метки.
Поэтому перед тренировкой вам придется преобразовать эти метки в числа. После подготовки набора данных с использованием этих функций в качестве координат вы можете использовать модель SVM для классификации текста.
Создание SVM в Python
Чтобы создать машину опорных векторов (SVM) в Python, вы можете использовать класс SVC
из библиотеки sklearn.svm
. Вот пример того, как вы можете использовать класс SVC
для построения модели SVM в Python:
from sklearn.svm import SVC # Load the dataset X = ... y = ... # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=19) # Create an SVM model model = SVC(kernel='linear') # Train the model on the training data model.fit(X_train, y_train) # Evaluate the model on the test data accuracy = model.score(X_test, y_test) print("Accuracy: ", accuracy)
В этом примере мы сначала импортируем класс SVC
из библиотеки sklearn.svm
. Затем мы загружаем набор данных и разделяем его на обучающий и тестовый наборы.
Затем мы создаем модель SVM, создавая экземпляр объекта SVC
и указав параметр kernel
как «линейный». Затем мы обучаем модель на обучающих данных, используя метод fit
, и оцениваем модель на тестовых данных, используя метод score
. Метод score
возвращает точность модели, которую мы выводим на консоль.
Вы также можете указать другие параметры для объекта SVC
, такие как параметр C
, который управляет силой регуляризации, и параметр gamma
, который управляет коэффициентом ядра для определенных ядер.
Преимущества SVM
Вот список некоторых преимуществ использования машин опорных векторов (SVM):
- Эффективность : SVM, как правило, эффективны для обучения, особенно при большом количестве выборок.
- Устойчивость к шуму : SVM относительно устойчивы к шуму в обучающих данных, поскольку они пытаются найти классификатор максимальной маржи, который менее чувствителен к шуму, чем другие классификаторы.
- Эффективность использования памяти: SVM требуют, чтобы в любой момент времени в памяти находилась только часть обучающих данных, что делает их более эффективными с точки зрения использования памяти, чем другие алгоритмы.
- Эффективно в многомерных пространствах: SVM по-прежнему могут работать хорошо, даже когда количество функций превышает количество выборок.
- Универсальность : SVM могут использоваться для задач классификации и регрессии и могут обрабатывать различные типы данных, включая линейные и нелинейные данные.
Теперь давайте рассмотрим некоторые из лучших ресурсов для изучения машины опорных векторов (SVM).
Образовательные ресурсы
Введение в машины опорных векторов
Эта книга «Введение в машины опорных векторов» подробно и постепенно знакомит вас с методами обучения на основе ядра.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
Введение в машины опорных векторов и другие методы обучения на основе ядра | $75.00 | Купить на Амазоне |
Это дает вам прочную основу теории машин опорных векторов.
Приложения поддержки векторных машин
В то время как первая книга была посвящена теории машин опорных векторов, эта книга о приложениях машин опорных векторов посвящена их практическому применению.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
Приложения поддержки векторных машин | 15,52 доллара США | Купить на Амазоне |
В нем рассматривается, как SVM используются в обработке изображений, обнаружении закономерностей и компьютерном зрении.
Машины опорных векторов (информатика и статистика)
Цель этой книги о машинах опорных векторов (информатика и статистика) состоит в том, чтобы предоставить обзор принципов, лежащих в основе эффективности машин опорных векторов (SVM) в различных приложениях.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
Машины опорных векторов (информатика и статистика) | $167,36 | Купить на Амазоне |
Авторы выделяют несколько факторов, способствующих успеху SVM, включая их способность хорошо работать с ограниченным числом настраиваемых параметров, их устойчивость к различным типам ошибок и аномалий, а также их эффективную вычислительную производительность по сравнению с другими методами.
Обучение с ядрами
«Обучение с ядрами» — это книга, которая знакомит читателей с поддержкой векторных машин (SVM) и связанными с ними технологиями ядра.
Предварительный просмотр | Товар | Рейтинг | Цена | |
---|---|---|---|---|
Обучение с ядрами: машины опорных векторов, регуляризация, оптимизация и не только (адаптивная… | $80.00 | Купить на Амазоне |
Он предназначен для того, чтобы дать читателям базовое понимание математики и знания, необходимые им для начала использования алгоритмов ядра в машинном обучении. Книга призвана предоставить подробное, но доступное введение в SVM и методы ядра.
Метод опорных векторов с помощью Sci-kit Learn
Этот онлайн-курс «Машины опорных векторов с Sci-kit Learn» сети проектов Coursera учит, как реализовать модель SVM с использованием популярной библиотеки машинного обучения Sci-Kit Learn.
Кроме того, вы изучите теорию SVM и определите их сильные и слабые стороны. Курс начального уровня и занимает около 2,5 часов.
Машины опорных векторов в Python: концепции и код
Этот платный онлайн-курс по машинам опорных векторов в Python от Udemy включает до 6 часов видеоинструкций и имеет сертификат.
Он охватывает SVM и то, как их можно надежно реализовать в Python. Кроме того, он охватывает бизнес-приложения машин опорных векторов.
Машинное обучение и ИИ: вспомогательные векторные машины в Python
В этом курсе по машинному обучению и искусственному интеллекту вы узнаете, как использовать машины опорных векторов (SVM) для различных практических приложений, включая распознавание изображений, обнаружение спама, медицинскую диагностику и регрессионный анализ.
Вы будете использовать язык программирования Python для реализации моделей машинного обучения для этих приложений.
Заключительные слова
В этой статье мы кратко узнали о теории, лежащей в основе машин опорных векторов. Мы узнали об их применении в машинном обучении и обработке естественного языка.
Мы также увидели, как выглядит его реализация с использованием scikit-learn
. Кроме того, мы говорили о практическом применении и преимуществах машин опорных векторов.
Хотя эта статья была просто введением, в дополнительных ресурсах рекомендуется более подробно остановиться на том, что касается машин опорных векторов. Учитывая, насколько они универсальны и эффективны, SVM стоит понимать, чтобы расти как специалисту по данным и инженеру по машинному обучению.
Далее вы можете ознакомиться с лучшими моделями машинного обучения.