Введение :

Привет, ребята ... Я снова вернулся😊

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

Что такое машина опорных векторов?

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

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

1. Гипотеза

2. Функция потерь

3. Оптимизация

Гипотеза SVM. Гипотеза для SVM очевидна. Здесь мы проверяем расстояние между точкой данных и границей решения. W - вес, а X - входные данные.

Функция потерь SVM (потеря на шарнире): первый член - это потеря, когда y = 1, y ’= 0, а второй член - это потеря, когда y = 0, y’ = 1. y ’- это не что иное, как наша гипотеза, определенная ранее (предсказанные значения).

Когда y = 1, если значение гипотезы больше или равно 1, потери равны 0. Если значение гипотезы находится между 0 и 1 или отрицательно, потеря является положительной величиной и увеличивается линейно.

Когда y = 0, если значение гипотезы больше или равно -1, потери равны 0. Если значение гипотезы лежит между -1 и 0 или положительно, тогда потери положительны и линейно возрастают.

Оптимизация: используйте алгоритм оптимизации, например оптимизацию градиентного спуска, чтобы минимизировать затраты и получить идеальные параметры (вес и смещение).

В SVM есть разные гиперпараметры. Некоторые из них подробно описаны ниже.

Ядро:

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

Что делают эти ядра?

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

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

Гамма:

Гамма используется, когда мы используем гауссовское ядро ​​RBF. если вы используете линейное или полиномиальное ядро, вам не нужна гамма. Высокая гамма означает большую кривизну на границе решения, низкая гамма означает меньшую кривизну (приближается к прямой).

C:

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

Реализация SVM с использованием библиотеки Scikit-learn:

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

Фрагмент модели

Вывод :

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