Feature Engineering — это процесс преобразования исходных данных в признаки, которые лучше всего описывают закономерности, скрытые в данных. Признаки — это отдельные измеримые свойства или характеристики объектов, которые подаются на вход модели машинного обучения: например, этажность дома, его площадь и дата продажи. Подробнее о признаках поговорим позже.
В отличие от автоматического извлечения признаков, Feature Engineering выполняется вручную или с помощью специальных методов. Хорошо спроектированные признаки могут повысить качество модели, тогда как плохие признаки способны свести на нет потенциал сложной нейросети.
ML-процессы изучаются на курсе «ML-инженер с опытом». На нём за четыре месяца студенты осваивают полный жизненный цикл модели машинного обучения. После обучения специалисты получают диплом о профессиональной переподготовке.
Алгоритмы машинного обучения видят только числовые значения и их комбинации: например, тексты, даты, категории, пропуски. Feature Engineering преобразует эти сырые типы в числовые признаки, которые подчёркивают релевантные для задачи структуры.
Главная задача Feature Engineering — уменьшить сложность пространства признаков, сохранив при этом максимум полезной информации. Он помогает модели быстрее сходиться, она требует меньше данных для обучения и становится более устойчивой к шумам. Без качественного создания признаков даже лучшие алгоритмы показывают неудовлетворительные результаты, а предсказания остаются неточными.
Все признаки можно разделить на несколько категорий в зависимости от их природы и способа получения. Понимание этих типов помогает выбрать правильные методы преобразования. Ниже перечислены основные типы признаков с краткими пояснениями.
Каждый тип признаков требует своих методов преобразования, и выбор подхода влияет на качество модели. Смешение типов без учёта их природы может привести к некорректной работе алгоритмов. Поэтому перед созданием новых признаков полезно классифицировать имеющиеся переменные.
Существует несколько классических методов, которые применяются в большинстве проектов. Каждый метод решает свою задачу: от приведения данных к единому масштабу до генерации сложных взаимодействий. Ниже перечислены основные методы.
Важно применять методы в правильной последовательности. Например, сначала обработка пропусков, затем масштабирование. Ошибки в порядке операций могут привести к искажению признаков и утечке данных. Рекомендуется фиксировать все шаги в виде воспроизводимых пайплайнов.
Реализация Feature Engineering опирается на экосистему Python. Основные библиотеки различаются по назначению и уровню автоматизации. В таблице ниже приведены основные инструменты.
Расскажем про самые частые проблемы, которые встречаются в проектах.
Решение этих проблем начинается с проектирования воспроизводимых пайплайнов и разделения данных на обучающие, валидационные и тестовые. Важно тестировать каждый признак на кросс-валидации, отслеживать стабильность его распределения.
Читать также: