Конструирование признаков

Конструирование признаков (англ. feature engineering) — это процесс создания, преобразования, генерации и отбора признаков (характеристик, переменных), используемых для описания и представления данных в задачах анализа данных и машинного обучения. Качество признаков напрямую влияет на работу алгоритмов анализа и машинного обучения: недостаточное количество или низкое качество признаков может значительно ухудшить результат моделей, а грамотно выбранные и сгенерированные признаки повышают эффективность вычислений и интерпретируемость моделей. Признаки могут быть самыми разными — последовательности, временные ряды, графы, тексты или изображения.

Процесс конструирования признаков

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

Создание признаков

Создание новых переменных из исходных данных или изменение существующих признаков, путём добавления или удаления некоторых из них.

Преобразование признаков

Использование математических функций для преобразования характеристик из одного представления в другое. Часто делается для улучшения интерпретируемости или визуализации данных.

Генерация признаков

Создание новых переменных, которые не получаются непосредственно через трансформацию существующих, а выявляются специфическими методами анализа. Процесс часто называют также извлечением признаков.

Отбор признаков

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

Анализ и оценка признаков

Использование методов и метрик для оценки информативности как отдельных признаков, так и их групп. Обычно такие методы входят в этап отбора признаков.

Общая методология автоматического конструирования признаков

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

Применение конструирования признаков

Практическая реализация подходов feature engineering для решения аналитических задач в различных предметных областях.

Виды конструирования признаков

Унвариантное и многомерное конструирование признаков

Для непрерывных переменных применяется преобразование для улучшения симметрии, нормальности распределения или аппроксимации модели. Например, при моделировании кредитного риска часто применяется логарифмирование переменных (размер кредита, активы, валовой внутренний продукт), поскольку они обычно неотрицательны и асимметричныVerdonck, Tim; Baesens, Bart; Óskarsdóttir, María; vanden Broucke, Seppe (6 августа 2021). “Special issue on feature engineering editorial”. Machine Learning [англ.]. 2021: s10994–021–06042-2. DOI:10.1007/s10994-021-06042-2. Дата обращения 6 мая 2022..

Доменно-специфическое конструирование признаков

Использование экспертных знаний по предметной области позволяет создавать «умные» признаки, повышающие качество алгоритма. Например, можно добавить индикаторные переменные по определённым условиям или сгенерировать новые признаки-комбинации (например, добавление безразмерных физических чисел, как число Архимеда для задач седиментации)Dash, T. (2022). “A review of some techniques for inclusion of domain-knowledge into deep neural networks”. Scientific Reports [англ.]. Дата обращения 6 мая 2022.SOLID-LIQUID MIXING IN STIRRED TANKS: Modeling, Validation, Design Optimization and Suspension Quality Prediction (англ.). ResearchGate (2021). Дата обращения: 6 мая 2022..

Конструирование признаков для временных рядов

Большинство алгоритмов машинного обучения не могут непосредственно работать с временными рядами. Стандартное решение — преобразовать временной ряд в векторное представление признаков, а затем применять предсказательные модели. Выбор такого представления признаков существенно влияет на результат и эффективность обучения, ручная работа с такими признаками сложна и трудозатратна.

Конструирование признаков для сетевых данных

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

Конструирование признаков для мультимедийных данных

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

Конструирование признаков для текстовых данных

Текст — неструктурированные данные, для которых важно учитывать контекст (значение фраз, документов). Текстовые данные имеют, как правило, высокую размерность и применяются в задачах фильтрации спама, маркетинга, анализа тональности, обнаружения мошенничества. Конструирование признаков здесь — критически важный шаг для создания числовых представлений исходных текстов.

Конструирование признаков для геопространственных данных

Геопространственные данные содержат информацию о местоположении объектов и событий, а также могут включать временные и погодные параметры. Такие данные актуальны для многих аналитических приложений, особенно при их объединении с традиционными корпоративными данными.

Техники конструирования признаков

Конструирование признаков тесно связано с процессом машинного обучения и зависит от понимания свойств данных и специфики задачи. Среди основных техник:

Импутация

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

Дискретизация

Объединение значений переменных в интервальные «корзины» (баки) для сокращения числа категорий или уменьшения размерности. Применяется к числовым и категориальным признакам, возможны варианты с равными интервалами, равными частотами, деревьями решений.

Категориальное кодирование

Преобразование категориальных признаков в числовые значения, удобные для работы алгоритмов. Часто используется one-hot-encoding (OHE), при котором каждой категории ставятся в соответствие бинарные переменные.

Разделение признаков

Разбиение сложного признака на несколько новых для повышения информативности по целевой переменной.

Обработка выбросов

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

Преобразование переменных

Трансформация данных для устранения асимметрии, приведения их к удобному виду для моделей. Популярный вариант — логарифмирование, сглаживающее хвосты распределения.

Масштабирование

Приведение числовых признаков к единой шкале: min-max-нормализация (от 0 до 1), стандартизация (среднее=0, дисперсия=1). Выбор метода зависит от чувствительности модели к масштабу входных данных.

Генерация новых признаков

Создание новых переменных с использованием арифметических операций, агрегаций (сумма, мода, среднее, медиана, разность, произведение).

Оценка значимости признаков

Разная степень важности признаков для итоговой модели требует их отбора, чтобы избежать переобучения. Применяются статистические методы выбора наиболее значимых переменных.

Взрыв признаков

Резкий рост числа признаков, возникающий при некорректном представлении данных (избыточные комбинации/новые переменные). Ограничивается методами регуляризации, отбора признаков.

Автоматизация конструирования признаков

Исследования автоматизации идут с 1990-х годов. Программные платформы, включающие автоматическое конструирование признаков, появились на рынке лишь к 2016 году. Существуют два основных подхода:

  • Мульти-реляционный метод на основе деревьев решений — строит для каждой новой группы признаков SQL-запросы, добавляя условия и отбирая наиболее информативные признаки;
  • Глубокий синтез признаков — создаёт новые признаки математическими функциями над данными из разных таблиц и столбцов.

Мульти-реляционные деревья решений Пример построения запроса:

SELECT COUNT(*) FROM ATOM t1 LEFT JOIN MOLECULE t2 ON t1.mol_id = t2.mol_id GROUP BY t1.mol_id

Затем к запросу поочерёдно добавляют условия, например: WHERE t1.charge <= −0.392.

Глубокий синтез признаков Создание новых признаков через применение математических функций для разных строк и столбцов таблицы с целью улучшить их представление в модели.

Хранилище признаков

Хранилище признаков — централизованный компонент, где признаки создаются, обновляются и сохраняются для последующего использования при построении моделей и прогнозов. Такой компонент хранит также код и логику генерации признаков, позволяя использовать процессы заново для новых данных.

Хранилище может быть самостоятельной системой или интегрироваться в платформы машинного обучения. Пример — FEAST (Fatigue Engineering Analysis and Simulation Tools), свободное ПО для онлайн-обучения моделей.

Примечания