Support Vector Machine (SVM) — это алгоритм обучения, который применяется для задач классификации, регрессии и обнаружения аномалий. Support Vector Machine переводится как «метод опорных векторов». В основе этого метода лежит построение разделяющей гиперплоскости, которая максимально удалена от объектов разных классов. Простыми словами, SVM — это способ научить компьютер различать объекты двух типов.
Представьте, что на листе бумаги нарисованы кружки и квадраты. Нужно провести прямую линию так, чтобы кружки оказались по одну сторону, а квадраты — по другую. При этом линия должна проходить как можно дальше от ближайших кружков и квадратов — так, чтобы между ними образовалась широкая «пустая полоса». SVM как раз и ищет такую идеальную линию, которая разделяет классы с максимальным зазором. Те объекты, которые оказались на границе этой полосы, называются опорными векторами — они и «держат» разделяющую линию.
Support Vector Machine изучают на курсе «Специалист по Data Science». За 13 месяцев студенты учатся решать настоящие задачи бизнеса и практикуются на данных от лидеров индустрии. После завершения курса выпускники получают диплом о профессиональной переподготовке.
SVM строит гиперплоскость, которая разделяет классы с максимальным зазором. Для двумерного случая гиперплоскость — это прямая, для трёхмерного — плоскость, для больших размерностей — обобщённая линейная поверхность. Расстояние от гиперплоскости до ближайших точек каждого класса называется зазором. Алгоритм выбирает именно ту гиперплоскость, которая максимизирует этот зазор.
Ближайшие к гиперплоскости точки называются опорными векторами. Именно они определяют положение разделяющей границы; остальные точки не влияют на построение. Если удалить неопорные векторы, гиперплоскость останется неизменной. Это свойство делает SVM экономичным по памяти и робастным к выбросам.
В реальных данных часто невозможно идеально разделить классы прямой линией. Для таких случаев существует «мягкий» зазор, который позволяет некоторым точкам оказаться с неправильной стороны границы или внутри зазора. Степень допустимых нарушений регулируется гиперпараметром C: большое C стремится правильно классифицировать все точки, но ведёт к переобучению; малое C создаёт более широкий зазор, допуская ошибки ради обобщения.
Классификация называется линейной, если объекты разных классов можно разделить одной прямой, плоскостью или гиперплоскостью. В таком случае SVM строит линейную границу, максимизирующую зазор между классами. Но на практике большинство наборов данных не обладают линейной разделимостью. Рассмотрим различия.
Есть простой способ отличить на графике линейную и нелинейную классификацию. При линейной классификации график будет с прямыми линиями. При нелинейной — со сложными, изогнутыми линиями.
У SVM есть сильные и слабые стороны. Понимание баланса помогает выбрать метод под задачу. Рассказали об этом в таблице.
Метод опорных векторов полезен в ситуациях, когда данные сложно разделить прямой линией, но при этом число признаков велико, а количество примеров не огромно. Например, когда нужно отличить спам от обычных писем, рукописную цифру или букву на изображении и другие ситуации. Рассмотрим некоторые из них.
Помимо этого, SVM поможет обнаружить аномалии на производстве. Метод применяется для выявления дефектов оборудования. Признаками служат показания датчиков: температура, вибрация, давление и др. Метод строит границу вокруг нормальных рабочих режимов, и любые точки за пределами считаются аномалиями.
Support Vector Machine изучают на курсе «Специалист по Data Science». За 13 месяцев студенты учатся решать настоящие задачи бизнеса и практикуются на данных от лидеров индустрии. После завершения курса выпускники получают диплом о профессиональной переподготовке.
Читать также: