Введение:

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

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

Что такое гиперплоскость?

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

Геометрическая интуиция:

Предположим, мы работаем над обнаружением спама в электронной почте.

Наши данные имеют две особенности: x и y. Представим себе два тега, в которых красные точки относятся к почтовому ящику для спама, а синие точки - к почтовому ящику. нам нужен классификатор, который по паре координат (x, y) выводит синий или красный цвет. мы наносим наши тренировочные данные на плоскость.

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

Предполагать,

Рассмотрим две гиперплоскости B и C. Выберем гиперплоскость с нормалью W, которая разделяет синие и красные точки как можно дальше. Следовательно, гиперплоскость B намного лучше, чем гиперплоскость C. В гиперплоскости C некоторые точки близки к ним.

Гиперплоскость, которая пытается максимально отделить синие точки от красных точек, называется гиперплоскостью, максимизирующей поля. Следовательно, B - это гиперплоскость, увеличивающая запасы.

Рассмотрим гиперплоскость B +, параллельную B и касающуюся первой синей точки. Точно так же B - гиперплоскость, параллельная B и касающаяся первой красной точки. Зазор между B + и B- постоянен, а расстояние (B +, B-), поскольку B + параллельно B-, а расстояние (B +, B-) называется запасом.

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

Чтобы максимизировать маржу, мы рассматриваем B + и B-.

Идеология SVM: найдите гиперплоскость, которая максимизирует запас, т.е. расстояние (B +, B-).

Если маржа высока, ошибка классификации будет уменьшена. Следовательно, ошибка обобщения улучшается.

Ошибка обобщения: точность в будущих невидимых точках данных повышается.

Опорные векторы:

Точки, через которые проходят B + и B-, называются опорными векторами.

SVM в линейно разделимых случаях:

  1. Это называется SVM с жесткими полями и хорошо работает, когда данные линейно разделяются.
  2. Убедитесь, что каждое наблюдение находится на правильной стороне гиперплоскости.
  3. Рассмотрим оптимальную линию, касающуюся определенных точек, где расстояние от ближайших точек до гиперплоскости, так называемое поле, максимально.

SVM в случаях нелинейной разделимости:

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

Точки на изнаночной стороне границы решения, но на поле. Точки между оптимальными линиями.

Применение soft margin SVM допускает ошибки, но пытается минимизировать ошибки. Степень допуска, которую мы хотим дать при нахождении границы решения, является важным гиперпараметром. В sklearn Срок штрафа «c» рассматривается как гиперпараметр. Гиперпараметр «c» определяет, каким может быть граница принятия решения.

По мере увеличения «c» склонность к ошибочной классификации уменьшается. Модель приобретает переоснащение и большую дисперсию.

По мере того, как «c» уменьшается, увеличивается вероятность ошибочной классификации. Модель получает недостаточную посадку и высокий баис.

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

В Sklearn мы можем выбрать «linear», «poly», «rbf», «sigmoid» в качестве ядра / преобразования.

Самым популярным ядром является радиальная базисная функция (RBF), поскольку она похожа на knn.

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

Плюсы SVM:

  • Хорошо работает с небольшими более чистыми наборами данных

Минусы SVM:

  • Не подходит для больших наборов данных, так как время обучения с SVM может быть большим.

Приложения SVM:

  1. Задача классификации текста, такая как присвоение категорий, обнаружение спама и анализ тональности.
  2. Проблемы распознавания изображений
  3. Распознавание рукописных цифр