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 в учебном процессе. |