SVM-регрессия

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: {{well|Статья написана с использованием LLM '''ChatGPT 5.6 Terra''' и проверена участником [[Участник:Aleksandr_Pochtarev|А.Ю....)
 
(3 промежуточные версии не показаны)
Строка 4: Строка 4:
{{TOCright}}
{{TOCright}}
-
'''Регрессия методом опорных векторов''' ('''SVM-регрессия''', англ. ''support vector regression'', '''SVR''') — метод [[обучение с учителем|обучения с учителем]] для предсказания числовой целевой переменной. Это регрессионный вариант [[Метод опорных векторов|метода опорных векторов]] (SVM). В наиболее распространённой постановке, называемой <tex>\varepsilon</tex>-SVR, алгоритм ищет функцию, которая как можно более гладка и при этом допускает отклонение предсказания от обучающего ответа не больше заданной величины <tex>\varepsilon</tex>. Отклонения за пределами этой «трубки» штрафуются линейно.<ref name="Smola2004">{{cite journal |last=Smola |first=Alex J. |author-link=Alex Smola |last2=Schölkopf |first2=Bernhard |author-link2=Bernhard Schölkopf |title=A Tutorial on Support Vector Regression |journal=Statistics and Computing |volume=14 |issue=3 |pages=199–222 |year=2004 |doi=10.1023/B:STCO.0000035301.49549.88 |url=https://doi.org/10.1023/B:STCO.0000035301.49549.88}}</ref>
+
'''Регрессия методом опорных векторов''' ('''SVM-регрессия''', англ. ''support vector regression'', '''SVR''') — метод [[обучение с учителем|обучения с учителем]] для предсказания числовой целевой переменной. Это регрессионный вариант [[Метод опорных векторов|метода опорных векторов]] (SVM). В наиболее распространённой постановке, называемой <tex>\varepsilon</tex>-SVR, алгоритм ищет функцию, которая как можно более гладка и при этом допускает отклонение предсказания от обучающего ответа не больше заданной величины <tex>\varepsilon</tex>. Отклонения за пределами этой «трубки» штрафуются линейно.<ref name="Smola2004">Смола А. Дж., Шёлькопф Б. [https://doi.org/10.1023/B:STCO.0000035301.49549.88 A Tutorial on Support Vector Regression] // ''Statistics and Computing''. — 2004. — Vol. 14, no. 3. — P. 199–222.</ref>
-
SVR применяют, когда нужно построить зависимость между признаками и непрерывной величиной: например, прогнозировать цену, потребление энергии, физическое измерение или остаточный срок службы оборудования. Нелинейные зависимости моделируются посредством [[Ядровой метод|ядерного метода]], поэтому модель может быть нелинейной в исходных признаках, оставаясь линейной в некотором признаковом пространстве. Как и другие SVM, SVR опирается на [[Регуляризация (математика)|регуляризацию]] и решается как выпуклая задача [[Квадратичное программирование|квадратичного программирования]]; для фиксированных гиперпараметров это означает отсутствие локальных минимумов целевой функции.<ref name="Vapnik1995">{{cite book |last=Vapnik |first=Vladimir N. |author-link=Вапник, Владимир Наумович |title=The Nature of Statistical Learning Theory |publisher=Springer |location=New York |year=1995 |isbn=978-1-4757-2440-0 |doi=10.1007/978-1-4757-2440-0 |url=https://doi.org/10.1007/978-1-4757-2440-0}}</ref>
+
SVR применяют, когда нужно построить зависимость между признаками и непрерывной величиной: например, прогнозировать цену, потребление энергии, физическое измерение или остаточный срок службы оборудования. Нелинейные зависимости моделируются посредством [[Ядровой метод|ядерного метода]], поэтому модель может быть нелинейной в исходных признаках, оставаясь линейной в некотором признаковом пространстве. Как и другие SVM, SVR опирается на [[Регуляризация|регуляризацию]] и решается как выпуклая задача [[Квадратичное программирование|квадратичного программирования]]; для фиксированных гиперпараметров это означает отсутствие локальных минимумов целевой функции.<ref name="Vapnik1995">Вапник В. Н. [https://doi.org/10.1007/978-1-4757-2440-0 ''The Nature of Statistical Learning Theory'']. — New York: Springer, 1995. — 188 p. — ISBN 978-1-4757-2440-0.</ref>
== Постановка задачи и мотивация ==
== Постановка задачи и мотивация ==
Строка 26: Строка 26:
Геометрически это соответствует трубке ширины <tex>2\varepsilon</tex> вокруг графика <tex>f</tex>. Объекты внутри трубки не вносят вклад в эмпирическую ошибку; для объекта с большей ошибкой важна только часть отклонения, выходящая за её границу. Такая функция потерь растёт линейно, а не квадратично, поэтому одиночные большие выбросы влияют на критерий слабее, чем при квадратичной потере, но не перестают влиять совсем.<ref name="Smola2004" />
Геометрически это соответствует трубке ширины <tex>2\varepsilon</tex> вокруг графика <tex>f</tex>. Объекты внутри трубки не вносят вклад в эмпирическую ошибку; для объекта с большей ошибкой важна только часть отклонения, выходящая за её границу. Такая функция потерь растёт линейно, а не квадратично, поэтому одиночные большие выбросы влияют на критерий слабее, чем при квадратичной потере, но не перестают влиять совсем.<ref name="Smola2004" />
-
Одной только малой ошибки на обучающей выборке недостаточно: сложная функция может [[Переобучение|переобучиться]]. В линейной модели величина <tex>\lVert w\rVert</tex> служит мерой её сложности: меньшая норма соответствует более «плоской» функции. SVR совместно минимизирует сложность и ошибки за пределами трубки.
+
Одной только малой ошибки на обучающей выборке недостаточно: сложная функция может [[Переобучение|переобучиться]]. В линейной модели величина <tex>||w||</tex> служит мерой её сложности: меньшая норма соответствует более «плоской» функции. SVR совместно минимизирует сложность и ошибки за пределами трубки.
== <tex>\varepsilon</tex>-SVR ==
== <tex>\varepsilon</tex>-SVR ==
Строка 80: Строка 80:
* '''линейное''': <tex>K(x,z)=x^{\mathsf T}z</tex>; подходит, когда зависимость близка к линейной или число признаков очень велико;
* '''линейное''': <tex>K(x,z)=x^{\mathsf T}z</tex>; подходит, когда зависимость близка к линейной или число признаков очень велико;
* '''полиномиальное''': <tex>K(x,z)=(\gamma x^{\mathsf T}z+r)^d</tex>; учитывает взаимодействия признаков ограниченной степени;
* '''полиномиальное''': <tex>K(x,z)=(\gamma x^{\mathsf T}z+r)^d</tex>; учитывает взаимодействия признаков ограниченной степени;
-
* '''радиально-базисное (RBF, гауссово)''': <tex>K(x,z)=\exp(-\gamma\lVert x-z\rVert^2)</tex>; задаёт локальное сходство объектов и является распространённой отправной точкой для нелинейной SVR.
+
* '''радиально-базисное (RBF, гауссово)''': <tex>K(x,z)=\exp(-\gamma ||x-z||^2)</tex>; задаёт локальное сходство объектов и является распространённой отправной точкой для нелинейной SVR.
-
Здесь <tex>\gamma>0</tex>, <tex>r</tex> и <tex>d</tex> — гиперпараметры. У RBF-ядра большое <tex>\gamma</tex> означает малый радиус влияния отдельной точки и повышает гибкость модели; слишком большое значение может привести к переобучению. Выбор ядра — не автоматическое доказательство нелинейности данных: его, как и значения <tex>C</tex> и <tex>\varepsilon</tex>, проверяют на данных, не использованных при обучении.<ref name="Hastie2009">{{cite book |last=Hastie |first=Trevor |author-link=Trevor Hastie |last2=Tibshirani |first2=Robert |author-link2=Robert Tibshirani |last3=Friedman |first3=Jerome |author-link3=Jerome H. Friedman |title=The Elements of Statistical Learning: Data Mining, Inference, and Prediction |edition=2 |publisher=Springer |location=New York |year=2009 |isbn=978-0-387-84858-7 |doi=10.1007/978-0-387-84858-7 |url=https://doi.org/10.1007/978-0-387-84858-7}}</ref>
+
Здесь <tex>\gamma>0</tex>, <tex>r</tex> и <tex>d</tex> — гиперпараметры. У RBF-ядра большое <tex>\gamma</tex> означает малый радиус влияния отдельной точки и повышает гибкость модели; слишком большое значение может привести к переобучению. Выбор ядра — не автоматическое доказательство нелинейности данных: его, как и значения <tex>C</tex> и <tex>\varepsilon</tex>, проверяют на данных, не использованных при обучении.<ref name="Hastie2009">Хасти Т., Тибширани Р., Фридман Дж. [https://doi.org/10.1007/978-0-387-84858-7 ''The Elements of Statistical Learning: Data Mining, Inference, and Prediction'']. 2nd ed. — New York: Springer, 2009. — 745 p. — ISBN 978-0-387-84858-7.</ref>
== Обучение, выбор модели и оценка качества ==
== Обучение, выбор модели и оценка качества ==
-
Матрица ядра имеет размер <tex>n\times n</tex>, поэтому хранение всех её элементов требует квадратичной по <tex>n</tex> памяти. Решение полной двойственной задачи также может быть вычислительно затруднительно на очень больших выборках. Практические реализации используют специализированные методы декомпозиции задачи квадратичного программирования: на каждом шаге оптимизируется небольшой рабочий набор коэффициентов. Такие подходы лежат в основе распространённых библиотек SVM, включая LIBSVM.<ref name="ChangLin2011">{{cite journal |last=Chang |first=Chih-Chung |last2=Lin |first2=Chih-Jen |title=LIBSVM: A Library for Support Vector Machines |journal=ACM Transactions on Intelligent Systems and Technology |volume=2 |issue=3 |pages=27:1–27:27 |year=2011 |doi=10.1145/1961189.1961199 |url=https://doi.org/10.1145/1961189.1961199}}</ref>
+
Матрица ядра имеет размер <tex>n\times n</tex>, поэтому хранение всех её элементов требует квадратичной по <tex>n</tex> памяти. Решение полной двойственной задачи также может быть вычислительно затруднительно на очень больших выборках. Практические реализации используют специализированные методы декомпозиции задачи квадратичного программирования: на каждом шаге оптимизируется небольшой рабочий набор коэффициентов. Такие подходы лежат в основе распространённых библиотек SVM, включая LIBSVM.<ref name="ChangLin2011">Чанг Ч.-Ч., Линь Ч.-Ж. [https://doi.org/10.1145/1961189.1961199 LIBSVM: A Library for Support Vector Machines] // ''ACM Transactions on Intelligent Systems and Technology''. — 2011. — Vol. 2, no. 3. — Art. 27, p. 1–27.</ref>
Практический порядок работы обычно таков:
Практический порядок работы обычно таков:
Строка 114: Строка 114:
== Варианты и связь с другими методами ==
== Варианты и связь с другими методами ==
-
'''<tex>\nu</tex>-SVR''' заменяет непосредственный выбор <tex>\varepsilon</tex> параметром <tex>\nu\in(0,1]</tex>. В исходной формулировке <tex>\nu</tex> имеет интерпретацию верхней границы доли объектов с ошибкой и нижней границы доли опорных векторов при обычных условиях невырожденности; поэтому он может быть удобнее для настройки, чем заранее заданная ширина трубки.<ref name="Scholkopf2000">{{cite journal |last=Schölkopf |first=Bernhard |last2=Smola |first2=Alex J. |last3=Williamson |first3=Robert C. |last4=Bartlett |first4=Peter L. |title=New Support Vector Algorithms |journal=Neural Computation |volume=12 |issue=5 |pages=1207–1245 |year=2000 |doi=10.1162/089976600300015565 |url=https://doi.org/10.1162/089976600300015565}}</ref>
+
'''<tex>\nu</tex>-SVR''' заменяет непосредственный выбор <tex>\varepsilon</tex> параметром <tex>\nu\in(0,1]</tex>. В исходной формулировке <tex>\nu</tex> имеет интерпретацию верхней границы доли объектов с ошибкой и нижней границы доли опорных векторов при обычных условиях невырожденности; поэтому он может быть удобнее для настройки, чем заранее заданная ширина трубки.<ref name="Scholkopf2000">Шёлькопф Б., Смола А. Дж., Уильямсон Р. К., Бартлетт П. Л. [https://doi.org/10.1162/089976600300015565 New Support Vector Algorithms] // ''Neural Computation''. — 2000. — Vol. 12, no. 5. — P. 1207–1245.</ref>
SVR отличается от SVM-классификации прежде всего типом целевой переменной и функцией потерь. [[Метод опорных векторов|SVM-классификатор]] разделяет классы и обычно использует [[Шарнирная функция потерь|шарнирную потерю]]; SVR оценивает действительное число и использует <tex>\varepsilon</tex>-нечувствительную потерю. С [[Гребневая регрессия|гребневой регрессией]] SVR роднят регуляризация и возможность ядрового расширения, но гребневая регрессия наказывает квадраты всех остатков, тогда как SVR игнорирует ошибки внутри трубки и имеет линейный штраф за её пределами. Поэтому их качество и число активных объектов могут заметно различаться даже на одной и той же выборке.<ref name="Hastie2009" />
SVR отличается от SVM-классификации прежде всего типом целевой переменной и функцией потерь. [[Метод опорных векторов|SVM-классификатор]] разделяет классы и обычно использует [[Шарнирная функция потерь|шарнирную потерю]]; SVR оценивает действительное число и использует <tex>\varepsilon</tex>-нечувствительную потерю. С [[Гребневая регрессия|гребневой регрессией]] SVR роднят регуляризация и возможность ядрового расширения, но гребневая регрессия наказывает квадраты всех остатков, тогда как SVR игнорирует ошибки внутри трубки и имеет линейный штраф за её пределами. Поэтому их качество и число активных объектов могут заметно различаться даже на одной и той же выборке.<ref name="Hastie2009" />
Строка 120: Строка 120:
== История ==
== История ==
-
Теоретической основой SVM стала [[Статистическая теория обучения|статистическая теория обучения]] Владимира Вапника. Алгоритм максимизации зазора для классификации был изложен Б. Бозером, И. Гийон и В. Вапником в 1992 году.<ref name="Boser1992">{{cite conference |last=Boser |first=Bernhard E. |last2=Guyon |first2=Isabelle M. |last3=Vapnik |first3=Vladimir N. |title=A Training Algorithm for Optimal Margin Classifiers |book-title=Proceedings of the Fifth Annual Workshop on Computational Learning Theory |publisher=ACM |year=1992 |pages=144–152 |doi=10.1145/130385.130401 |url=https://doi.org/10.1145/130385.130401}}</ref> В 1996 году в материалах конференции NIPS были опубликованы работы Вапника, Голоуича и Смолы о приближении функций и оценивании регрессии методом опорных векторов, а также Друкера, Бёрджеса, Кауфман, Смолы и Вапника под названием «Support Vector Regression Machines». Последняя работа представила SVR как новую регрессионную технику и сопоставила её с бэггингом регрессионных деревьев и гребневой регрессией в признаковом пространстве.<ref name="VapnikGolowichSmola1997">{{cite conference |last=Vapnik |first=Vladimir |last2=Golowich |first2=Steven E. |last3=Smola |first3=Alex J. |title=Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing |book-title=Advances in Neural Information Processing Systems 9 |publisher=MIT Press |year=1997 |pages=281–287 |url=https://proceedings.neurips.cc/paper/1996/hash/4f284803bd0966cc24fa8683a34afc6e-Abstract.html}}</ref><ref name="Drucker1997">{{cite conference |last=Drucker |first=Harris |last2=Burges |first2=Christopher J. C. |last3=Kaufman |first3=Linda |last4=Smola |first4=Alex J. |last5=Vapnik |first5=Vladimir |title=Support Vector Regression Machines |book-title=Advances in Neural Information Processing Systems 9 |publisher=MIT Press |year=1997 |pages=155–161 |url=https://proceedings.neurips.cc/paper/1996/hash/d38901788c533e8286cb6400b40b386d-Abstract.html}}</ref>
+
Теоретической основой SVM стала [[Статистическая теория обучения|статистическая теория обучения]] Владимира Вапника. Алгоритм максимизации зазора для классификации был изложен Б. Бозером, И. Гийон и В. Вапником в 1992 году.<ref name="Boser1992">Бозер Б. Э., Гийон И. М., Вапник В. Н. [https://doi.org/10.1145/130385.130401 A Training Algorithm for Optimal Margin Classifiers] // ''Proceedings of the Fifth Annual Workshop on Computational Learning Theory''. — ACM, 1992. — P. 144–152.</ref> В 1996 году в материалах конференции NIPS были опубликованы работы Вапника, Голоуича и Смолы о приближении функций и оценивании регрессии методом опорных векторов, а также Друкера, Бёрджеса, Кауфман, Смолы и Вапника под названием «Support Vector Regression Machines». Последняя работа представила SVR как новую регрессионную технику и сопоставила её с бэггингом регрессионных деревьев и гребневой регрессией в признаковом пространстве.<ref name="VapnikGolowichSmola1997">Вапник В., Голоуич С. Э., Смола А. Дж. [https://proceedings.neurips.cc/paper/1996/hash/4f284803bd0966cc24fa8683a34afc6e-Abstract.html Support Vector Method for Function Approximation, Regression Estimation, and Signal Processing] // ''Advances in Neural Information Processing Systems 9''. — MIT Press, 1997. — P. 281–287.</ref><ref name="Drucker1997">Друкер Х., Бёрджес К. Дж. К., Кауфман Л., Смола А. Дж., Вапник В. [https://proceedings.neurips.cc/paper/1996/hash/d38901788c533e8286cb6400b40b386d-Abstract.html Support Vector Regression Machines] // ''Advances in Neural Information Processing Systems 9''. — MIT Press, 1997. — P. 155–161.</ref>
В дальнейшем были разработаны алгоритмы для более крупных наборов данных, варианты постановки задачи и программные библиотеки. Обзор Смолы и Шёлькопфа 2004 года систематизировал основные формулировки SVR, методы оптимизации и связь с регуляризацией.<ref name="Smola2004" />
В дальнейшем были разработаны алгоритмы для более крупных наборов данных, варианты постановки задачи и программные библиотеки. Обзор Смолы и Шёлькопфа 2004 года систематизировал основные формулировки SVR, методы оптимизации и связь с регуляризацией.<ref name="Smola2004" />

Текущая версия

Статья написана с использованием LLM ChatGPT 5.6 Terra и проверена участником А.Ю.Почтарев 18 июля 2026

Промпт приводится полностью в Обсуждение:SVM-регрессия


Содержание

Регрессия методом опорных векторов (SVM-регрессия, англ. support vector regression, SVR) — метод обучения с учителем для предсказания числовой целевой переменной. Это регрессионный вариант метода опорных векторов (SVM). В наиболее распространённой постановке, называемой \varepsilon-SVR, алгоритм ищет функцию, которая как можно более гладка и при этом допускает отклонение предсказания от обучающего ответа не больше заданной величины \varepsilon. Отклонения за пределами этой «трубки» штрафуются линейно.[1]

SVR применяют, когда нужно построить зависимость между признаками и непрерывной величиной: например, прогнозировать цену, потребление энергии, физическое измерение или остаточный срок службы оборудования. Нелинейные зависимости моделируются посредством ядерного метода, поэтому модель может быть нелинейной в исходных признаках, оставаясь линейной в некотором признаковом пространстве. Как и другие SVM, SVR опирается на регуляризацию и решается как выпуклая задача квадратичного программирования; для фиксированных гиперпараметров это означает отсутствие локальных минимумов целевой функции.[1]

Постановка задачи и мотивация

Пусть дана обучающая выборка

\mathcal D=\{(x_i,y_i)\}_{i=1}^{n},\qquad x_i\in\mathbb R^p,\quad y_i\in\mathbb R,

где x_i — вектор признаков, а y_i — известный числовой ответ. Требуется построить функцию f, которая хорошо предсказывает y для новых объектов из того же распределения. В линейном случае

f(x)=w^{\mathsf T}x+b,

где w — вектор весов, b — свободный член.

В обычном методе наименьших квадратов штрафуется любая ненулевая ошибка. В \varepsilon-SVR ошибки до \varepsilon считаются практически несущественными. Используется \varepsilon-нечувствительная функция потерь (англ. \varepsilon-insensitive loss):

L_{\varepsilon}(y,f(x))=\max\{0,\,|y-f(x)|-\varepsilon\}.

Геометрически это соответствует трубке ширины 2\varepsilon вокруг графика f. Объекты внутри трубки не вносят вклад в эмпирическую ошибку; для объекта с большей ошибкой важна только часть отклонения, выходящая за её границу. Такая функция потерь растёт линейно, а не квадратично, поэтому одиночные большие выбросы влияют на критерий слабее, чем при квадратичной потере, но не перестают влиять совсем.[1]

Одной только малой ошибки на обучающей выборке недостаточно: сложная функция может переобучиться. В линейной модели величина ||w|| служит мерой её сложности: меньшая норма соответствует более «плоской» функции. SVR совместно минимизирует сложность и ошибки за пределами трубки.

\varepsilon-SVR

Прямая задача оптимизации

Для допуска нарушений вводятся неотрицательные переменные \xi_i и \xi_i^*. Они измеряют соответственно превышение верхней и нижней границ трубки. После отображения признаков \varphi(x) в некоторое пространство признаков минимизируется величина

\min_{w,b,\xi,\xi^*} \frac{1}{2} ||w||^2 + C \sum_{i=1}^{n}(\xi_i+\xi_i^*)

при ограничениях

y_i-w^T\varphi(x_i)-b \leq \varepsilon+\xi_i

w^T\varphi(x_i)+b-y_i \leq \varepsilon+\xi_i^*

\xi_i \geq 0,\quad \xi_i^* \geq 0,\quad i=1,\ldots,n

Параметр C > 0 задаёт компромисс между шириной трубки, гладкостью функции и наказанием за нарушения:

  • при большом C модель сильнее стремится объяснить обучающие данные и обычно имеет меньшую регуляризацию;
  • при малом C важнее малая норма w, поэтому модель может быть более простой, но недообученной;
  • большее \varepsilon делает трубку шире и, как правило, уменьшает число опорных векторов, однако может скрыть значимые для задачи ошибки.

Эквивалентная запись критерия без явных переменных \xi показывает его смысл:

\min_{w,b} \frac{1}{2} ||w||^2 + C \sum_{i=1}^{n} L_{\varepsilon}(y_i,w^T\varphi(x_i)+b)

Двойственная задача и опорные векторы

Для ядровой SVR обычно решают двойственную задачу. Она выражает результат только через попарные значения ядра K(x_i,x_j)=\varphi(x_i)^T\varphi(x_j). Максимизируется величина

\max_{\alpha,\alpha^*} -\frac{1}{2} \sum_{i=1}^{n}\sum_{j=1}^{n}(\alpha_i-\alpha_i^*)(\alpha_j-\alpha_j^*)K(x_i,x_j) - \varepsilon \sum_{i=1}^{n}(\alpha_i+\alpha_i^*) + \sum_{i=1}^{n}y_i(\alpha_i-\alpha_i^*)

при ограничениях

\sum_{i=1}^{n}(\alpha_i-\alpha_i^*)=0

0 \leq \alpha_i \leq C,\quad 0 \leq \alpha_i^* \leq C,\quad i=1,\ldots,n

После нахождения множителей Лагранжа прогноз записывается как

f(x)=\sum_{i=1}^{n}(\alpha_i-\alpha_i^*)K(x_i,x)+b.

Объекты, для которых \alpha_i-\alpha_i^*\ne0, называются опорными векторами. Именно они определяют итоговую функцию; точки строго внутри \varepsilon-трубки обычно имеют нулевые коэффициенты и не входят в сумму. Это свойство даёт разреженное представление модели, хотя на шумных данных число опорных векторов может быть большим.[1]

Ядра и нелинейные зависимости

Отображение \varphi не требуется вычислять явно. Достаточно выбрать ядро — симметричную положительно полуопределённую функцию, для которой существует скалярное произведение в некотором признаковом пространстве. Это и есть ядерный трюк (англ. kernel trick).

Часто используются следующие ядра:

  • линейное: K(x,z)=x^{\mathsf T}z; подходит, когда зависимость близка к линейной или число признаков очень велико;
  • полиномиальное: K(x,z)=(\gamma x^{\mathsf T}z+r)^d; учитывает взаимодействия признаков ограниченной степени;
  • радиально-базисное (RBF, гауссово): K(x,z)=\exp(-\gamma ||x-z||^2); задаёт локальное сходство объектов и является распространённой отправной точкой для нелинейной SVR.

Здесь \gamma>0, r и d — гиперпараметры. У RBF-ядра большое \gamma означает малый радиус влияния отдельной точки и повышает гибкость модели; слишком большое значение может привести к переобучению. Выбор ядра — не автоматическое доказательство нелинейности данных: его, как и значения C и \varepsilon, проверяют на данных, не использованных при обучении.[1]

Обучение, выбор модели и оценка качества

Матрица ядра имеет размер n\times n, поэтому хранение всех её элементов требует квадратичной по n памяти. Решение полной двойственной задачи также может быть вычислительно затруднительно на очень больших выборках. Практические реализации используют специализированные методы декомпозиции задачи квадратичного программирования: на каждом шаге оптимизируется небольшой рабочий набор коэффициентов. Такие подходы лежат в основе распространённых библиотек SVM, включая LIBSVM.[1]

Практический порядок работы обычно таков:

  1. Отделяют тестовую выборку, которую не используют ни для подбора параметров, ни для предварительной обработки.
  2. Преобразуют числовые признаки к сопоставимому масштабу, например стандартизируют. Для RBF- и полиномиального ядер это особенно важно, поскольку расстояния и скалярные произведения зависят от масштаба признаков.
  3. При необходимости масштабируют и целевой признак y; метрики затем считают после обратного преобразования предсказаний.
  4. На обучающей части подбирают ядро и параметры C, \varepsilon, а для RBF также \gamma. Для этого применяют перекрёстную проверку (англ. cross-validation) или выделенную проверочную, то есть отложенную, выборку (англ. hold-out validation).
  5. Оценивают окончательную модель на тестовых объектах заранее выбранной метрикой, например MAE, RMSE или R^2. Метрика должна соответствовать стоимости ошибок в прикладной задаче.

Параметры следует подбирать вместе: например, эффект \gamma для RBF-ядра зависит от масштаба признаков и от C. Все преобразования — заполнение пропусков, масштабирование, кодирование категорий — обучают только на каждой обучающей части разбиения и затем применяют к соответствующей проверочной части. Иначе возникает утечка данных (англ. data leakage) и оценка качества оказывается чрезмерно оптимистичной.

Для очень больших наборов данных полная ядровая SVR часто непрактична. Возможные альтернативы зависят от задачи: линейная SVR, если линейность приемлема; приближённые ядерные методы; либо другие регрессионные модели. Это инженерное решение следует принимать по проверяемому качеству, времени обучения, времени предсказания и требованиям к объяснимости, а не по названию алгоритма.

Свойства, преимущества и ограничения

К преимуществам SVR относят выпуклую постановку задачи, возможность использовать нелинейные зависимости через ядра и часто разреженную форму предсказателя. \varepsilon-нечувствительная потеря явно выражает допустимую точность измерения: если ошибки меньше \varepsilon действительно несущественны, этот параметр имеет предметную интерпретацию.

Ограничения метода также существенны.

  • Нелинейная SVR чувствительна к масштабам признаков и к выбору C, \varepsilon и параметров ядра; значения «по умолчанию» редко являются обоснованным выбором.
  • Ядерная матрица ограничивает применимость метода на больших выборках по памяти и времени. Стоимость одного предсказания пропорциональна числу опорных векторов.
  • Результат с нелинейным ядром обычно труднее интерпретировать, чем коэффициенты линейной регрессии; опорные векторы не являются автоматически «наиболее важными признаками».
  • Стандартная SVR возвращает точечный прогноз, но не вероятностный прогноз и не доверительный интервал. Если интервальная неопределённость необходима, её строят отдельными методами и проверяют их калибровку.
  • Линейный рост потерь делает метод менее чувствительным к большим остаткам, чем квадратичная потеря, но не защищает от произвольных выбросов в признаках или целевой переменной. Нужны анализ данных и, при необходимости, специальные робастные методы.

Варианты и связь с другими методами

\nu-SVR заменяет непосредственный выбор \varepsilon параметром \nu\in(0,1]. В исходной формулировке \nu имеет интерпретацию верхней границы доли объектов с ошибкой и нижней границы доли опорных векторов при обычных условиях невырожденности; поэтому он может быть удобнее для настройки, чем заранее заданная ширина трубки.[1]

SVR отличается от SVM-классификации прежде всего типом целевой переменной и функцией потерь. SVM-классификатор разделяет классы и обычно использует шарнирную потерю; SVR оценивает действительное число и использует \varepsilon-нечувствительную потерю. С гребневой регрессией SVR роднят регуляризация и возможность ядрового расширения, но гребневая регрессия наказывает квадраты всех остатков, тогда как SVR игнорирует ошибки внутри трубки и имеет линейный штраф за её пределами. Поэтому их качество и число активных объектов могут заметно различаться даже на одной и той же выборке.[1]

История

Теоретической основой SVM стала статистическая теория обучения Владимира Вапника. Алгоритм максимизации зазора для классификации был изложен Б. Бозером, И. Гийон и В. Вапником в 1992 году.[1] В 1996 году в материалах конференции NIPS были опубликованы работы Вапника, Голоуича и Смолы о приближении функций и оценивании регрессии методом опорных векторов, а также Друкера, Бёрджеса, Кауфман, Смолы и Вапника под названием «Support Vector Regression Machines». Последняя работа представила SVR как новую регрессионную технику и сопоставила её с бэггингом регрессионных деревьев и гребневой регрессией в признаковом пространстве.[1][1]

В дальнейшем были разработаны алгоритмы для более крупных наборов данных, варианты постановки задачи и программные библиотеки. Обзор Смолы и Шёлькопфа 2004 года систематизировал основные формулировки SVR, методы оптимизации и связь с регуляризацией.[1]

См. также

Примечания

Литература

Личные инструменты