SVM, переменное взаимодействие и подбор данных обучения


12

У меня есть 2 общих / более теоретических вопроса.

1) Мне интересно, как SVM обрабатывают переменные взаимодействия при построении прогностических моделей. Например, если у меня есть две функции f1 и f2, а цель зависит от f1, f2 и, скажем, f1 * f2 (или некоторой функции h (f1, f2)), подходит ли SVM (не только для OOS, но даже для данных обучения) улучшить, если включить функции f1, f2 и h (f1, f2) в функции, включающие только функции f1 и f2? Алгоритм SVM имеет дело с функциональными взаимодействиями? Кажется, что это было бы с тем, как SVM пытается создать гиперплоскости в пространстве более высокого измерения, но не уверен, поэтому хотел спросить.

2) При установке SVM на тренировочные данные, при наличии достаточного количества функций и нахождении оптимальных параметров (с помощью поиска методом грубой силы или чего-либо еще), SVM всегда будет тривиально соответствовать обучающим данным? Не уверен, правильно ли я сформулировал это, но в принципе, если в функциях достаточно дисперсии / шума, SVM всегда будет соответствовать тренировочным данным на 100%? И наоборот, если SVM не соответствует обучающим данным на 100%, означает ли это, что есть некоторая информация (или другие особенности), которые влияют на целевую переменную, которая не фиксируется в данных?

Благодарность

Небольшое уточнение. Я имею в виду ядра SVM конкретно

Ответы:


8

Как предполагает highBandwidth, это зависит от того, используете ли вы линейный SVM или нелинейный (педантичный, если ядро ​​не используется, это линейный классификатор с максимальным запасом, а не SVM).

Линейный классификатор с максимальным запасом ничем не отличается от любого другого линейного классификатора тем, что если процесс создания данных означает, что между атрибутами есть взаимодействия, то предоставление этих условий взаимодействия, вероятно, повысит производительность. Линейный классификатор максимального запаса скорее похож на регрессию гребня, с небольшой разницей в штрафном члене, который разработан, чтобы избежать переобучения (учитывая подходящие значения для параметра регуляризации), и в большинстве случаев регрессия гребня и классификатор максимального запаса будут давать аналогичную производительность.

Если вы считаете, что члены взаимодействия, вероятно, важны, то вы можете ввести их в пространство признаков SVM, используя полиномиальное ядро , которое даст пространство признаков, в котором каждая ось представляет моном порядка или меньше, параметр влияет на относительный вес мономов разных порядков. Таким образом, SVM с полиномиальным ядром эквивалентно подгонке полиномиальной модели к пространству атрибутов, которое неявно включает эти взаимодействия.K(x,x)=(xx+c)ddc

При наличии достаточного количества функций любой линейный классификатор может легко соответствовать данным. IIRC и точек в «общем положении» в мерном пространстве могут быть разбиты (разделены любым произвольным образом) гиперплоскостью (см. Размерность VC). Это обычно приводит к серьезному переоснащению, поэтому его следует избегать. Смысл классификации максимального запаса состоит в том, чтобы ограничить это переопределение, добавив штрафной термин, который означает, что достигается наибольшее возможное разделение (что потребовало бы наибольшего отклонения от любого обучающего примера для получения ошибочной классификации). Это означает, что вы можете преобразовать данные в очень многомерное пространство (где линейная модель очень мощная), не подвергаясь слишком большому переоснащению.nn1

Обратите внимание, что некоторые ядра дают бесконечномерное пространство признаков, где «тривиальная» классификация гарантируется для любой конечной обучающей выборки в общем положении. Например, ядро ​​радиальной базисной функции, , где пространство признаков является положительным ортантом бесконечномерной гиперсферы. Такие ядра делают SVM универсальным аппроксиматором, который может представлять практически любую границу решения.K(x,x)=expγxx2

Однако это только часть истории. На практике мы обычно используем SVM с мягким полем, где ограничение маржи разрешено нарушать, и есть параметр регуляризации, который управляет компромиссом между максимизацией маржи (который является штрафным термином, подобным тому, который используется в регрессия гребня) и величина слабых переменных (что сродни потере на тренировочной выборке). Затем мы избегаем чрезмерной подгонки, настраивая параметр регуляризации, например, сводя к минимуму ошибку перекрестной проверки (или некоторую привязку к ошибке «оставь один раз»), как мы это сделали бы в случае регрессии гребня.

Таким образом, хотя SVM может легко классифицировать обучающий набор, он, как правило, делает это только в том случае, если параметры регуляризации и ядра выбраны неправильно. Ключом к достижению хороших результатов с любой моделью ядра является выбор подходящего ядра, а затем настройка ядра и параметров регуляризации, чтобы избежать чрезмерного или недостаточного соответствия данных.


Спасибо, Дикран. Это было очень подробно и полезно. Я думаю, что я понимаю ответы на вопросы. Один быстрый ответ. Как можно выбрать подходящее ядро ​​для SVM? Будет ли это похоже на регуляризацию / параметры ядра (например, через перекрестную проверку)? Или есть какая-то теоретическая основа для выбора? Если ядро ​​rbf делает SVM универсальным аппроксиматором, я думаю, что выбор ядра - это еще один параметр для настройки, но не уверен. Как вы, вероятно, можете сказать, я довольно новичок в этом.
Томас

Выбор ядра часто является хорошим способом встраивания экспертных знаний о проблеме в классификатор, например, для системы распознавания рукописных символов, вы, вероятно, захотите использовать ядро, инвариантное к небольшим поворотам и переводам изображения. Автоматический выбор ядра может быть достигнут путем перекрестной проверки (что я и сделал бы) или ограничения на ошибку "оставь один раз" (которая может быть эффективно выполнена для SVM). Однако, если набор данных мал, то выбор ядра с помощью перекрестной проверки может быть сложным из-за перегрузки ошибки перекрестной проверки.
Дикран Marsupial

Для многих приложений линейное ядро ​​или ядро ​​RBF являются хорошим выбором по умолчанию, и зачастую от изучения более широкого диапазона ядер выиграть сравнительно мало (при отсутствии экспертных знаний о проблеме).
Дикран Marsupial

1

Ответы зависят от того, используете ли вы линейный SVM или ядро ​​SVM. В линейном SVM вы используете только те функции, которые вы ему даете, и это не учитывает взаимодействия. С Kernel SVM, в основном, вы используете много разных функций, в зависимости от того, какое ядро ​​вы выбрали. Если есть разделяющая гиперплоскость, т. Если определяет класс, где являются функциями, тогда вы можете выполнить полную подгонку обучающих данных. Обычно вы не указываете функции, но даете ядру , которое связано с функциями, как . Посмотрите, как воспроизводятся пространства Гильберта Ядра.sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.