SVM регрессия (пример)
Материал из MachineLearning.
Строка 10: | Строка 10: | ||
== Алгоритм == | == Алгоритм == | ||
{{Main|Машина опорных векторов}} | {{Main|Машина опорных векторов}} | ||
- | В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций | + | В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций, из которых можем составить вектор-функцию |
+ | <tex> | ||
+ | f(x)=\begin{Vmatrix} | ||
+ | f_1(x) \\ | ||
+ | f_2(x) \\ | ||
+ | \vdots \\ | ||
+ | f_k(x) | ||
+ | \end{Vmatrix} | ||
+ | </tex>. | ||
+ | |||
+ | Тогда функционал примет вид: | ||
::<tex>Q_\epsilon(a,X)=\sum_{i=1}^\ell \mid (w,f(x_i))-w_0-y_i \mid_\epsilon + \tau (w,w)^2 \rightarrow \underset{w,w_0}{min}</tex> | ::<tex>Q_\epsilon(a,X)=\sum_{i=1}^\ell \mid (w,f(x_i))-w_0-y_i \mid_\epsilon + \tau (w,w)^2 \rightarrow \underset{w,w_0}{min}</tex> | ||
+ | В предположении что | ||
+ | ::<tex>f_0(x)=\sum_{i=1}^k w_i f_i(x)</tex> | ||
Для этого вводятся обозначение <tex>C=\frac{1}{2\tau}</tex> и дополнительные переменные <tex>\xi_i^+</tex> и <tex>\xi_i^-</tex>: | Для этого вводятся обозначение <tex>C=\frac{1}{2\tau}</tex> и дополнительные переменные <tex>\xi_i^+</tex> и <tex>\xi_i^-</tex>: | ||
Строка 75: | Строка 87: | ||
\end{Vmatrix} | \end{Vmatrix} | ||
</tex>, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно <tex>2\ell</tex>. | </tex>, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно <tex>2\ell</tex>. | ||
+ | |||
+ | Таким образом, мы свели задачу к задаче квадратичного программирования. | ||
+ | |||
+ | В нашем примере значения С, <tex>\epsilon</tex> и порождающие функции задаются экспертом. | ||
+ | |||
+ | == Вычислительный эксперимент == | ||
+ | |||
+ | Вычислительный эксеримент состоит из трех основных частей: | ||
+ | * Генерация данных; | ||
+ | * Работа алгоритма; | ||
+ | * Визуализация и анализ данных. | ||
+ | |||
+ | === Генерация данных === | ||
+ | |||
+ | При генерации данных мы выбираем некую линейную комбинацию наших порождающих функций, и добаляем к ней случайный шум. В ходе эксперимента исследуются различные, как дискретные, так и непрерывные шумы. | ||
+ | |||
+ | === Результат работы алгоритма === | ||
+ | |||
{{Задание|Алексей Корниенко|В.В.Стрижов|28 мая 2010}} | {{Задание|Алексей Корниенко|В.В.Стрижов|28 мая 2010}} |
Версия 21:04, 28 апреля 2010
SVM (Support Vector Machine, машина опорных векторов) — это особый класс алгоритмов, который характеризуется использованием ядер, отсутствием локальных минимумов, и т. д.
Содержание |
Постановка задачи
Дано: Обучающая выборка , где
-признаковое описание i-го объекта,
- характеристика, приписываемая объекту. Функция потерь имеет вид
для каждого вектора
, где
.
Найти: такую функцию , которая описывает зависимость
наилучшим образом.
Алгоритм
В этом примере решается задача построения линейной SVM регрессии. Для этого решается прямая задача минимизации функционала потерь, в предположении что решение задается линейной комбинацией неких порождающих функций, из которых можем составить вектор-функцию
.
Тогда функционал примет вид:
В предположении что
Для этого вводятся обозначение и дополнительные переменные
и
:
,
,
.
Геометрический смысл и
:
Далее решается задача квадратичного программирования:
Эту же задачу можно преобразовать к виду , при условии, что
а также,
, где
- вектор-столбец, составленный из столбцов
, тоесть, где все переменные объеденены в один столбец неизвестных. В таких обозначениях
, где единиц и нулей в
и
соответственно столько же, сколько порождающих фукций, а размерность матрицы
и вектора
равна размерности
.
Теперь построим матрицу А и столбцы и
. Преобразуем задачу квадратичного программирования к виду
Отсюдого получаем,
, и количество минус бесконечностей в lb равно количеству порождающих функций, а количество нулей равно
.
Таким образом, мы свели задачу к задаче квадратичного программирования.
В нашем примере значения С, и порождающие функции задаются экспертом.
Вычислительный эксперимент
Вычислительный эксеримент состоит из трех основных частей:
- Генерация данных;
- Работа алгоритма;
- Визуализация и анализ данных.
Генерация данных
При генерации данных мы выбираем некую линейную комбинацию наших порождающих функций, и добаляем к ней случайный шум. В ходе эксперимента исследуются различные, как дискретные, так и непрерывные шумы.
Результат работы алгоритма
![]() | Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |