Анализ данных • 28 мая 2026 • 5 мин чтения

Support Vector Machine: классификация данных с помощью метода опорных векторов

Рассказываем, как разделять объекты на группы, находя между ними наиболее устойчивую границу, с помощью Support Vector Machine.

Что такое Support Vector Machine

Support Vector Machine (SVM) — это алгоритм обучения, который применяется для задач классификации, регрессии и обнаружения аномалий. Support Vector Machine переводится как «метод опорных векторов». В основе этого метода лежит построение разделяющей гиперплоскости, которая максимально удалена от объектов разных классов. Простыми словами, SVM — это способ научить компьютер различать объекты двух типов.

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

Применение SVM

Support Vector Machine изучают на курсе «Специалист по Data Science». За 13 месяцев студенты учатся решать настоящие задачи бизнеса и практикуются на данных от лидеров индустрии. После завершения курса выпускники получают диплом о профессиональной переподготовке.

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

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

Ближайшие к гиперплоскости точки называются опорными векторами. Именно они определяют положение разделяющей границы; остальные точки не влияют на построение. Если удалить неопорные векторы, гиперплоскость останется неизменной. Это свойство делает SVM экономичным по памяти и робастным к выбросам.

В реальных данных часто невозможно идеально разделить классы прямой линией. Для таких случаев существует «мягкий» зазор, который позволяет некоторым точкам оказаться с неправильной стороны границы или внутри зазора. Степень допустимых нарушений регулируется гиперпараметром C: большое C стремится правильно классифицировать все точки, но ведёт к переобучению; малое C создаёт более широкий зазор, допуская ошибки ради обобщения.

Линейная и нелинейная классификация

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

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

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

Ядра (Kernel) в SVM

Ядро — это функция, которая вычисляет меру сходства между двумя объектами в пространстве признаков. Вместо того чтобы явно задавать преобразование признаков, ядерная функция оценивает результат скалярного произведения в новом пространстве. Ниже перечислены самые распространённые ядра с их характеристиками.

Преимущества и недостатки метода

У SVM есть сильные и слабые стороны. Понимание баланса помогает выбрать метод под задачу. Рассказали об этом в таблице.

Преимущества Недостатки
Эффективность в высокоразмерных пространствах. SVM хорошо работает, когда число признаков превышает количество объектов. Чувствительность к масштабу признаков. Перед обучением необходимо нормировать или стандартизировать все признаки, иначе одни из них будут доминировать.
Устойчивость к переобучению. Использование максимизации зазора и регуляризации (параметр C) снижает склонность к запоминанию шума. Плохая интерпретируемость. Особенно при использовании нелинейных ядер трудно объяснить, почему модель приняла то или иное решение.
Экономия памяти. Модель запоминает только опорные векторы, а не все обучающие точки. Высокие вычислительные затраты на больших данных. Обучающая сложность составляет O(n²) или O(n³), что делает SVM неприменимым для датасетов с миллионами записей.
Гибкость благодаря ядрам. SVM способна улавливать сложные нелинейные закономерности без перестроения архитектуры. Сложность подбора ядра и гиперпараметров. Требуется аккуратный поиск по сетке (grid search) или байесовская оптимизация.

Применение SVM в анализе данных

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

  • Классификация текстов и анализ тональности. SVM с линейным ядром часто применяется для классификации документов по темам или для оценки тональности отзывов. Метод эффективен даже при десятках тысяч слов-признаков и относительно небольшом количестве документов.
  • Поиск раковых клеток на основе генной экспрессии. В биоинформатике наборы данных содержат тысячи генов и всего несколько сотен образцов. SVM с RBF-ядром помогает классифицировать типы опухолей по микроматричным данным. Устойчивость к размерности и способность находить нелинейные зависимости делают метод востребованным в медицинской диагностике.
  • Распознавание рукописных цифр. SVM классифицирует чёрно-белые изображения цифр размером 28 × 28 пикселей. С использованием RBF-ядра и правильной нормализации достигается точность более 98%.

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

Support Vector Machine изучают на курсе «Специалист по Data Science». За 13 месяцев студенты учатся решать настоящие задачи бизнеса и практикуются на данных от лидеров индустрии. После завершения курса выпускники получают диплом о профессиональной переподготовке.

Совет эксперта

Ян Анисимов

«1. Не забывайте масштабировать данные перед применением метода. SVM можно отнести к классу линейных и геометрических методов. Они сильно чувствительны, если признаки — разных масштабов.
2. SVM подходит для задач, где порядка 10 тысяч строчек и много признаков».
Статью подготовили:
Ян Анисимов
Образовательная программа Data Science
Руководитель
Валентина Бокова
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Подпишитесь на наш ежемесячный дайджест статей —
а мы подарим вам полезную книгу про обучение!

Поделиться
Помогите Алисе попасть в страну IT и получите в подарок гайд, полезные книги и скидку 10%