Что делать сначала: выбор параметра или настройка параметров модели?

Это скорее "теоретический" вопрос. Я работаю с пакетом scikit-learn для выполнения некоторых задач NLP. Sklearn предоставляет множество методов для выполнения как выбора функции, так и настройки параметров модели. Мне интересно, что я должен сделать в первую очередь.

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

Но что, если я хочу использовать рекурсивную функцию? Должен ли я сначала установить параметры с помощью поиска по сетке, используя ВСЕ оригинальные функции, а затем выполнить выбор функции? Или, возможно, я должен сначала выбрать функции (с параметрами по умолчанию для оценщика), а затем установить параметры с выбранными функциями?

Заранее спасибо за любую помощь, которую вы могли бы мне дать.

РЕДАКТИРОВАТЬ

У меня такая же проблема, как и здесь. К тому времени не было никакого решения. Кто-нибудь знает, существует ли он сейчас?

Ответ 1

Лично я считаю, что RFE в большинстве случаев слишком велико и слишком дорого. Если вы хотите сделать выбор функции на линейных моделях, используйте одномерный выбор функции, например, с chi2-тестами или L1 или L1 + L2-регуляризованными моделями с параметром регуляризации сетки (обычно называемым C или alpha в моделях sklearn).

Для сильно нелинейных проблем с большим количеством выборок вы должны попробовать RandomForestClassifier, ExtraTreesClassifier или GBRT модели и выбор параметров поиска сетки (возможно, используя оценки оценки OOB) и использовать переключатель compute_importances чтобы найти ранжирование признаков по важности и использовать их для функции выбор.

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