SVM-регрессия
Материал из MachineLearning.
| Строка 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 | + | * '''радиально-базисное (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">{{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> | ||
Версия 15:51, 18 июля 2026
| | Статья написана с использованием LLM ChatGPT 5.6 Terra и проверена участником А.Ю.Почтарев 18 июля 2026
Промпт приводится полностью в Обсуждение:SVM-регрессия |
|
Регрессия методом опорных векторов (SVM-регрессия, англ. support vector regression, SVR) — метод обучения с учителем для предсказания числовой целевой переменной. Это регрессионный вариант метода опорных векторов (SVM). В наиболее распространённой постановке, называемой -SVR, алгоритм ищет функцию, которая как можно более гладка и при этом допускает отклонение предсказания от обучающего ответа не больше заданной величины
. Отклонения за пределами этой «трубки» штрафуются линейно.[1]
SVR применяют, когда нужно построить зависимость между признаками и непрерывной величиной: например, прогнозировать цену, потребление энергии, физическое измерение или остаточный срок службы оборудования. Нелинейные зависимости моделируются посредством ядерного метода, поэтому модель может быть нелинейной в исходных признаках, оставаясь линейной в некотором признаковом пространстве. Как и другие SVM, SVR опирается на регуляризацию и решается как выпуклая задача квадратичного программирования; для фиксированных гиперпараметров это означает отсутствие локальных минимумов целевой функции.[1]
Постановка задачи и мотивация
Пусть дана обучающая выборка
где — вектор признаков, а
— известный числовой ответ. Требуется построить функцию
, которая хорошо предсказывает
для новых объектов из того же распределения. В линейном случае
где — вектор весов,
— свободный член.
В обычном методе наименьших квадратов штрафуется любая ненулевая ошибка. В -SVR ошибки до
считаются практически несущественными. Используется
-нечувствительная функция потерь (англ.
-insensitive loss):
Геометрически это соответствует трубке ширины вокруг графика
. Объекты внутри трубки не вносят вклад в эмпирическую ошибку; для объекта с большей ошибкой важна только часть отклонения, выходящая за её границу. Такая функция потерь растёт линейно, а не квадратично, поэтому одиночные большие выбросы влияют на критерий слабее, чем при квадратичной потере, но не перестают влиять совсем.[1]
Одной только малой ошибки на обучающей выборке недостаточно: сложная функция может переобучиться. В линейной модели величина служит мерой её сложности: меньшая норма соответствует более «плоской» функции. SVR совместно минимизирует сложность и ошибки за пределами трубки.
-SVR
Прямая задача оптимизации
Для допуска нарушений вводятся неотрицательные переменные и
. Они измеряют соответственно превышение верхней и нижней границ трубки. После отображения признаков
в некоторое пространство признаков минимизируется величина
при ограничениях
Параметр задаёт компромисс между шириной трубки, гладкостью функции и наказанием за нарушения:
- при большом
модель сильнее стремится объяснить обучающие данные и обычно имеет меньшую регуляризацию;
- при малом
важнее малая норма
, поэтому модель может быть более простой, но недообученной;
- большее
делает трубку шире и, как правило, уменьшает число опорных векторов, однако может скрыть значимые для задачи ошибки.
Эквивалентная запись критерия без явных переменных показывает его смысл:
Двойственная задача и опорные векторы
Для ядровой SVR обычно решают двойственную задачу. Она выражает результат только через попарные значения ядра . Максимизируется величина
при ограничениях
После нахождения множителей Лагранжа прогноз записывается как
Объекты, для которых , называются опорными векторами. Именно они определяют итоговую функцию; точки строго внутри
-трубки обычно имеют нулевые коэффициенты и не входят в сумму. Это свойство даёт разреженное представление модели, хотя на шумных данных число опорных векторов может быть большим.[1]
Ядра и нелинейные зависимости
Отображение не требуется вычислять явно. Достаточно выбрать ядро — симметричную положительно полуопределённую функцию, для которой существует скалярное произведение в некотором признаковом пространстве. Это и есть ядерный трюк (англ. kernel trick).
Часто используются следующие ядра:
- линейное:
; подходит, когда зависимость близка к линейной или число признаков очень велико;
- полиномиальное:
; учитывает взаимодействия признаков ограниченной степени;
- радиально-базисное (RBF, гауссово):
; задаёт локальное сходство объектов и является распространённой отправной точкой для нелинейной SVR.
Здесь ,
и
— гиперпараметры. У RBF-ядра большое
означает малый радиус влияния отдельной точки и повышает гибкость модели; слишком большое значение может привести к переобучению. Выбор ядра — не автоматическое доказательство нелинейности данных: его, как и значения
и
, проверяют на данных, не использованных при обучении.[1]
Обучение, выбор модели и оценка качества
Матрица ядра имеет размер , поэтому хранение всех её элементов требует квадратичной по
памяти. Решение полной двойственной задачи также может быть вычислительно затруднительно на очень больших выборках. Практические реализации используют специализированные методы декомпозиции задачи квадратичного программирования: на каждом шаге оптимизируется небольшой рабочий набор коэффициентов. Такие подходы лежат в основе распространённых библиотек SVM, включая LIBSVM.[1]
Практический порядок работы обычно таков:
- Отделяют тестовую выборку, которую не используют ни для подбора параметров, ни для предварительной обработки.
- Преобразуют числовые признаки к сопоставимому масштабу, например стандартизируют. Для RBF- и полиномиального ядер это особенно важно, поскольку расстояния и скалярные произведения зависят от масштаба признаков.
- При необходимости масштабируют и целевой признак
; метрики затем считают после обратного преобразования предсказаний.
- На обучающей части подбирают ядро и параметры
,
, а для RBF также
. Для этого применяют перекрёстную проверку (англ. cross-validation) или выделенную проверочную, то есть отложенную, выборку (англ. hold-out validation).
- Оценивают окончательную модель на тестовых объектах заранее выбранной метрикой, например MAE, RMSE или
. Метрика должна соответствовать стоимости ошибок в прикладной задаче.
Параметры следует подбирать вместе: например, эффект для RBF-ядра зависит от масштаба признаков и от
. Все преобразования — заполнение пропусков, масштабирование, кодирование категорий — обучают только на каждой обучающей части разбиения и затем применяют к соответствующей проверочной части. Иначе возникает утечка данных (англ. data leakage) и оценка качества оказывается чрезмерно оптимистичной.
Для очень больших наборов данных полная ядровая SVR часто непрактична. Возможные альтернативы зависят от задачи: линейная SVR, если линейность приемлема; приближённые ядерные методы; либо другие регрессионные модели. Это инженерное решение следует принимать по проверяемому качеству, времени обучения, времени предсказания и требованиям к объяснимости, а не по названию алгоритма.
Свойства, преимущества и ограничения
К преимуществам SVR относят выпуклую постановку задачи, возможность использовать нелинейные зависимости через ядра и часто разреженную форму предсказателя. -нечувствительная потеря явно выражает допустимую точность измерения: если ошибки меньше
действительно несущественны, этот параметр имеет предметную интерпретацию.
Ограничения метода также существенны.
- Нелинейная SVR чувствительна к масштабам признаков и к выбору
,
и параметров ядра; значения «по умолчанию» редко являются обоснованным выбором.
- Ядерная матрица ограничивает применимость метода на больших выборках по памяти и времени. Стоимость одного предсказания пропорциональна числу опорных векторов.
- Результат с нелинейным ядром обычно труднее интерпретировать, чем коэффициенты линейной регрессии; опорные векторы не являются автоматически «наиболее важными признаками».
- Стандартная SVR возвращает точечный прогноз, но не вероятностный прогноз и не доверительный интервал. Если интервальная неопределённость необходима, её строят отдельными методами и проверяют их калибровку.
- Линейный рост потерь делает метод менее чувствительным к большим остаткам, чем квадратичная потеря, но не защищает от произвольных выбросов в признаках или целевой переменной. Нужны анализ данных и, при необходимости, специальные робастные методы.
Варианты и связь с другими методами
-SVR заменяет непосредственный выбор
параметром
. В исходной формулировке
имеет интерпретацию верхней границы доли объектов с ошибкой и нижней границы доли опорных векторов при обычных условиях невырожденности; поэтому он может быть удобнее для настройки, чем заранее заданная ширина трубки.[1]
SVR отличается от SVM-классификации прежде всего типом целевой переменной и функцией потерь. SVM-классификатор разделяет классы и обычно использует шарнирную потерю; SVR оценивает действительное число и использует -нечувствительную потерю. С гребневой регрессией SVR роднят регуляризация и возможность ядрового расширения, но гребневая регрессия наказывает квадраты всех остатков, тогда как SVR игнорирует ошибки внутри трубки и имеет линейный штраф за её пределами. Поэтому их качество и число активных объектов могут заметно различаться даже на одной и той же выборке.[1]
История
Теоретической основой SVM стала статистическая теория обучения Владимира Вапника. Алгоритм максимизации зазора для классификации был изложен Б. Бозером, И. Гийон и В. Вапником в 1992 году.[1] В 1996 году в материалах конференции NIPS были опубликованы работы Вапника, Голоуича и Смолы о приближении функций и оценивании регрессии методом опорных векторов, а также Друкера, Бёрджеса, Кауфман, Смолы и Вапника под названием «Support Vector Regression Machines». Последняя работа представила SVR как новую регрессионную технику и сопоставила её с бэггингом регрессионных деревьев и гребневой регрессией в признаковом пространстве.[1][1]
В дальнейшем были разработаны алгоритмы для более крупных наборов данных, варианты постановки задачи и программные библиотеки. Обзор Смолы и Шёлькопфа 2004 года систематизировал основные формулировки SVR, методы оптимизации и связь с регуляризацией.[1]
См. также
Примечания
Литература
- Vapnik, V. N. The Nature of Statistical Learning Theory. — Springer, 1995. — 188 p. — ISBN 978-1-4757-2440-0. — DOI: 10.1007/978-1-4757-2440-0.
- Smola, A. J.; Schölkopf, B. A Tutorial on Support Vector Regression // Statistics and Computing. — 2004. — Vol. 14, no. 3. — P. 199–222. — DOI: 10.1023/B:STCO.0000035301.49549.88.
- Schölkopf, B.; Smola, A. J. Learning with Kernels: Support Vector Machines, Regularization, Optimization, and Beyond. — MIT Press, 2002. — 626 p. — ISBN 978-0-262-19475-4.
- Hastie, T.; Tibshirani, R.; Friedman, J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. — Springer, 2009. — 745 p. — ISBN 978-0-387-84858-7. — DOI: 10.1007/978-0-387-84858-7.

