Машины опорных векторов

Вступление

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

Классификаторы опорных векторов

Вектор поддержки - это отличный универсальный алгоритм обучения с учителем, который может выполнять линейную / нелинейную классификацию, регрессию и обнаружение выбросов.

Иллюстрированный пример представляет собой одномерный биномиальный классификатор, который пытается предсказать, следует ли классифицировать группу наблюдений как короткую или высокую.

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

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

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

На рис. 1–2 мы видим, что с порогом SVM, наблюдения, которые слишком близки, все еще могут быть классифицированы как высокие, когда они достаточно близки.

Расстояние между плоскостью и наблюдением называется запасом. Поскольку самолет проходит посередине между двумя наблюдениями, расстояния будут одинаковыми. Этот самолет по сути дает нам наибольший запас. Название самолета называется классификатором максимальной или жесткой маржи.

Это здорово, учитывая, что наши данные одномерные, но как насчет аномалий и как мы их корректируем?

Выбросы

Проблема с классификаторами максимальной / жесткой маржи в том, что они очень чувствительны к выбросам. Они также работают только в том случае, если данные могут быть разделены линейно.

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

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

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

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

Вы можете использовать классификатор SVM полиномиального ядра, чтобы установить степень полинома, чтобы скорректировать размеры, чтобы помочь исправить проблемы перекрытия. когда d = 2, он возводит наблюдения в квадрат, переводя их с горизонтальной линии на оси X и Y. Это помогает перекрывать друг друга, создавая более заметное разделение между классами.

По мере увеличения степени размеры данных также увеличиваются, пока вы не имеете дело с плоскостями и гиперплоскостями.

Набор данных Iris

Линейный:

import numpy as np
from sklearn import datasets
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
iris = datasets.load_iris()
X = iris["data"][:,(2,3)] # we will just use petal length and width
y = (iris["target"] ==2).astype(np.float64) # Iris Virginica
svm_clf = Pipeline([
          ("scaler", StandardScaler()),
          ("linear_svc, LinearSVC(C=1, loss="hinge")),
    ])
svm_clf.fit(X,y)

Затем мы можем сделать прогноз:

svm_clf.predict([[5.5, 1.7]])

Использование SVM в реальной жизни

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

Распознавание лиц

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

Категоризация текста

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

Заключение

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