SVM регрессия (пример)
Материал из MachineLearning.
SVM (Support Vector Machine, машина опорных векторов) — это особый класс алгоритмов, который характеризуется использованием ядер, отсутствием локальных минимумов, и т. д.
Содержание |
Постановка задачи
Дано: Обучающая выборка , где
-признаковое описание i-го объекта,
- характеристика, приписываемая объекту. Функция потерь имеет вид
для каждого вектора
, где
.
Найти: такую функцию , которая описывает зависимость
наилучшим образом.
Алгоритм
В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций, из которых можем составить вектор-функцию
.
Тогда функционал примет вид:
В предположении что
Для этого вводятся обозначение и дополнительные переменные
и
:
,
,
.
Геометрический смысл и
:
Далее решается задача квадратичного программирования:
Эту же задачу можно преобразовать к виду , при условии, что
а также,
, где
- вектор-столбец, составленный из столбцов
, тоесть, где все переменные объеденены в один столбец неизвестных. В таких обозначениях
, где единиц и нулей в
и
соответственно столько же, сколько порождающих фукций, а размерность матрицы
и вектора
равна размерности
.
Теперь построим матрицу А и столбцы и
. Преобразуем задачу квадратичного программирования к виду
Отсюдого получаем,
, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно
.
Таким образом, мы свели задачу к задаче квадратичного программирования.
В нашем примере значения С, и порождающие функции задаются экспертом.
Вычислительный эксперимент
Вычислительный эксеримент состоит из трех основных частей:
- Генерация данных;
- Работа алгоритма;
- Визуализация и анализ данных.
Генерация данных
При генерации данных мы выбираем некую линейную комбинацию наших порождающих функций, и добаляем к ней случайный шум. В ходе эксперимента исследуются различные, как дискретные, так и непрерывные шумы.
Результат работы алгоритма
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |