Фильтрация признаков (Feature Selection)
Что такое Фильтрация признаков (Feature Selection)?
Метод предобработки данных в машинном обучении, направленный на отбор наиболее информативных признаков (переменных) для построения модели и исключение избыточных или нерелевантных.
- снизить размерность данных;
- ускорить обучение модели;
- уменьшить риск переобучения;
- улучшить обобщающую способность модели.
Аналогия из бытового мира
Представьте, что вы собираете чемодан в путешествие. У вас есть много вещей, но место ограничено. Вы отбираете только самое необходимое, оставляя дома то, что вряд ли пригодится. Фильтрация признаков работает похожим образом: алгоритм «отбирает» только те признаки, которые действительно важны для решения задачи, «оставляя за бортом» всё лишнее.
Исторический контекст
Проблема избыточности признаков стала очевидной уже на ранних этапах развития машинного обучения, когда исследователи столкнулись с «проклятием размерности» (термин введён Ричардом Беллманом в 1961 году). С ростом числа признаков экспоненциально увеличивается объём данных, необходимый для надёжного обучения модели. В 1990–2000‑х годах активно разрабатывались методы отбора признаков, включая фильтрационные подходы, основанные на статистических критериях.
Смежные понятия
- Обёрточные методы (wrapper methods) — в отличие от фильтрации, обёрточные методы оценивают подмножества признаков на основе качества работы конкретной модели, что делает их более затратными по вычислительным ресурсам.
- Методы встраивания (embedded methods) — отбор признаков происходит в процессе обучения модели (например, LASSO‑регуляризация). В отличие от фильтрации, здесь отбор и обучение неразделимы.
Примеры использования
- Статистические критерии: использование коэффициента корреляции Пирсона, критерия хи‑квадрат, ANOVA для оценки значимости признаков. Например, в задаче классификации текстов можно отфильтровать слова с низкой частотностью или слабой связью с целевой переменной.
- Порог дисперсии: исключение признаков с низкой дисперсией (например, константных или почти константных), которые не несут информации.
- Библиотеки и инструменты: в Python‑библиотеке scikit‑learn реализованы классы для фильтрации признаков, такие как
SelectKBest(выбор k лучших признаков по заданному критерию) иVarianceThreshold(удаление признаков с дисперсией ниже порога). - Конкретные задачи: в компьютерном зрении фильтрация может применяться для отбора наиболее информативных каналов изображения или признаков, извлечённых с помощью свёрточных слоёв. В задачах обработки естественного языка — для отбора значимых n‑грамм или эмбеддингов слов.
