Нужно ли нам еще выбирать функции при использовании алгоритмов регуляризации?

20

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

Мы знаем, что во избежание переобучения мы можем ввести штраф за регуляризацию весовых векторов.

Поэтому, если я хочу сделать линейную регрессию, я мог бы ввести параметры регуляризации L2 или L1 или даже Elastic net. Чтобы получить разреженные решения, штраф L1 помогает в выборе функции.

Тогда все еще необходимо сделать выбор функции перед запуском регуляризации L1, такой как Лассо? Технически, Лассо помогает мне уменьшить количество функций на штраф L1, тогда зачем нужен выбор функций перед запуском алгоритма?

Я прочитал исследовательскую статью, в которой говорилось, что выполнение Anova и SVM дает лучшую производительность, чем использование одного SVM. Теперь вопрос: SVM по своей природе делает регуляризацию, используя L2-норму. Чтобы максимизировать запас, минимизируется норма вектора веса. Так что это делает регуляризацию в своей целевой функции. Тогда технически алгоритмы, такие как SVM, не должны беспокоиться о методах выбора функций. Но в отчете по-прежнему говорится, что выбор функции Univariate Feature возможен до того, как обычный SVM станет более мощным.

Кто-нибудь с мыслями?

Baktaawar
источник
Я хотел бы поднять один вопрос: как регуляризация SVM работает с методами ядра? L2 норма нормы зависит от нормируемых входов. Однако, если вы используете ядро ​​(например, многочлен), то ваши эффективные входные данные (то есть степени полинома) больше не нормализуются.
seanv507

Ответы:

17

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

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

Для методов L1 я, конечно, не стал бы беспокоиться о выборе объектов, так как критерий L1 обычно эффективен в функциях обрезки. Причина, по которой он эффективен, заключается в том, что он вызывает порядок, в котором элементы входят и выходят из модели, что уменьшает число доступных вариантов выбора при выборе объектов и, следовательно, менее склонно к чрезмерной подгонке.

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

Дикран Сумчатый
источник
Что вы подразумеваете под вложенным перекрестным излучением? Применяется ли перекрестная проверка в k-кратном размере N раз?
yasin.yazici
5

Многие люди считают, что регуляризации достаточно, чтобы позаботиться о посторонних переменных, и нет необходимости в выборе переменных, если вы соответствующим образом регуляризируете, делаете частичное объединение, создаете иерархические модели и т. Д., Когда целью является точность прогнозирования. Например, если оценка параметра для конкретной переменной упорядочена вплоть до или полностью удалена из модели ( ) действительно не выполняется не имеет большого значения в задачах прогнозирования.β J = 0,0001 β J = 0Jβ^Jзнак равно0,0001β^Jзнак равно0

Однако есть все еще причины полностью удалить переменную.

  1. Иногда целью является не предсказательная точность, а объяснение мирового феномена. Иногда вы хотите знать, что переменные делают и не влияют на определенную зависимую переменную. В таких ситуациях экономная модель является предпочтительным способом понимания и интерпретации.
  2. Вы настраиваете себя на риск. Если вы оставите переменную которая действительно не имеет эффекта, то вы настраиваете себя на вероятность того, что, если вы соберете другие данные, эта переменная повлияет на результаты. Это особенно актуально для моделей, которые многократно переоснащаются различными приложениями.β^J
  3. Вычислительные причины - модель с меньшим количеством переменных обычно работает быстрее, и вам не нужно хранить данные для этих посторонних переменных.
TrynnaDoStat
источник
2
Привет TrynnaDoStat, я полностью согласен с вашими пунктами 1 и 3. Но аргумент 2 на самом деле не подходит. Если вы делаете выбор функции с тем же набором данных, вы также рискуете выбрать неправильный набор функций. Потому что одна случайная переменная может хорошо коррелировать с целевой переменной в данных.
gstar2002
β^J
0

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

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

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

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

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

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

CFH
источник
3
(1) Я не согласен с вашим первым предложением. Выбор функции не уменьшает объем данных, но уменьшает количество функций. Количество экземпляров (выборок) остается неизменным, и это может помочь переоснащению, потому что классификатору требуется меньше параметров (если это параметрическая модель), чтобы соответствовать данным. Меньшее количество параметров означает меньшую мощность представления, поэтому вероятность их превышения меньше. (2) Какой тип алгоритма выбора функций вы упомянули, чтобы использовать до KNN? Как узнать, какие функции будут более эффективными?
yasin.yazici
@ yasin.yazici: Скажем, вы делаете классификацию рукописных цифр и отбрасываете все, кроме верхнего левого пикселя. Разве вы просто не сократили объем данных?
cfh
@chf Нет, это только уменьшает количество функций. Скажем, набор данных - это MNIST, для каждого образца имеется 784 объекта и 60000 образцов. Если вы отбросите какую-то часть своих функций, у вас останется 60000 образцов.
yasin.yazici
@ yasin.yazici: Я хочу сказать, что количество сэмплов не совпадает с количеством данных. Данные представляют собой целую матрицу «образцов х функций».
cfh
Выбор функций может (и часто будет) соответствовать. Если вы используете регулярных учеников и не заботитесь о важности функций, то, если у вас нет большого количества данных и надежной схемы проверки, я не вижу особого смысла для выбора функций.
Firebug
0

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

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

DeepakML
источник
0

В случае с лассо предварительная обработка данных для удаления неприятных особенностей на самом деле довольно распространена. Для недавней статьи, обсуждающей способы сделать это, пожалуйста, смотрите Xiang et al. «Скрининговые тесты на проблемы лассо» . Общая мотивация, упомянутая в статьях, которые я видел, состоит в том, чтобы уменьшить вычислительную нагрузку при вычислении решения.

user795305
источник