Выбор функции для опорных векторных машин

9

Мой вопрос в три раза

В контексте «Kernelized» поддержка векторных машин

  1. Желателен ли выбор переменной / функции - тем более, что мы упорядочиваем параметр C, чтобы предотвратить переоснащение, и основной причиной внедрения ядер в SVM является увеличение размерности проблемы, в таком случае уменьшение размеров за счет уменьшения параметров кажется нелогичным
  2. Если ответ на 1-й вопрос «НЕТ», то при каких условиях изменится ответ, о котором следует помнить?
  3. Есть ли какие-нибудь хорошие методы, которые пытались вызвать сокращение возможностей SVM в библиотеке scikit-learn из python - я пробовал метод SelectFpr и ищу людей с опытом работы с различными методами.
Нитин Шривастава
источник
1
Выбор функций всегда поможет, если только ваши начальные функции не получаются с очень высоким качеством. Sklearn предлагает множество различных библиотек выбора функций ( scikit-learn.org/stable/modules/feature_selection.html ). Я сам неравнодушен к RFE.
Дэвид
1
Вы не упомянули свой контекст - обратите внимание, что, если он находится в бизнес-контексте, каждая функция, которая остается в модели, потребует обслуживания на некотором уровне, - если у вас есть больше переменных, то потребуются буквальные денежные затраты в том смысле, что это требует, например, больше усилий по сбору данных, времени DBA и времени программирования. Это соображение, очевидно, неприменимо, если речь идет о компе Kaggle или аналогичном, и если использование дополнительных 200 доступных функций в наборе данных дает вам повышение производительности на 0,01%, вы получаете деньги.
Роберт де Грааф

Ответы:

3

Лично мне нравится делить выбор объектов на две части:

  • неконтролируемый выбор функций
  • контролируемый выбор функций

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

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

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

РЕДАКТИРОВАТЬ: вы также спрашивали о регуляризации. Я считаю, что регуляризация помогает в основном потому, что мы работаем с конечными выборками, и поэтому распределение обучения и тестирования всегда будет несколько отличаться, и вы хотите, чтобы ваша модель не выходила за рамки. Я не уверен, что это устраняет необходимость избегать выбора функций (если у вас их действительно слишком много). Я думаю, что выбор функций (или создание меньшего их подмножества) помогает сделать функции, которые у вас есть, более устойчивыми и избегать модели, чтобы учиться на ложных корреляциях. Таким образом, регуляризация помогает, но не уверена, что это полная альтернатива. Но я недостаточно тщательно об этом думал.

Рикардо Круз
источник