Встречается на 28% собеседований по Data Engineer

Есть какие-то вопросы

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

Как это работает

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

Пример

Для быстрого отбора признаков в задаче классификации часто использую SelectKBest с ANOVA-тестом:

python
from sklearn.feature_selection import SelectKBest, f_classif

# X — матрица признаков, y — целевая переменная
selector = SelectKBest(f_classif, k=10)
X_new = selector.fit_transform(X, y)

Этот код выбирает 10 лучших признаков по F-статистике. Для регрессии вместо f_classif применяется f_regression.

Подводные камни

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

Когда использовать

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

Коротко

  • Фильтры — быстрые, но игнорируют взаимодействия признаков.
  • Встроенные методы учитывают модель и подходят для большинства задач.
  • Оберточные методы точны, но дороги и применяются на малых данных.
  • Всегда разделяйте данные до отбора признаков и помните о бизнес-требованиях.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы