No history yet

Инженерия признаков

Продвинутая инженерия признаков

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

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

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

Два популярных метода для этого — KNNImputer и IterativeImputer.

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

Более сложный подход — это (итеративное вменение). Этот метод рассматривает каждый признак с пропусками как целевую переменную, а остальные признаки — как предикторы. Он последовательно обучает модель (например, линейную регрессию) для каждого такого признака и использует её для предсказания пропущенных значений. Процесс повторяется несколько раз, уточняя прогнозы на каждой итерации, пока значения не сойдутся.

Кодирование категорий высокой мощности

Когда категориальный признак имеет тысячи уникальных значений (например, почтовые индексы или ID пользователей), метод One-Hot Encoding становится непрактичным. Он создает огромное количество новых столбцов, что приводит к "проклятию размерности" и ухудшению производительности модели. Для таких случаев существуют более хитрые методы.

Мощность (Cardinality)

noun

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

Target Encoding (целевое кодирование) — один из самых эффективных подходов. Идея проста: каждая категория заменяется на среднее значение целевой переменной для этой категории. Например, если мы предсказываем отток клиентов, категория 'Москва' будет заменена на средний процент оттока среди всех клиентов из Москвы.

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

Другой популярный вариант — Leave-One-Out Encoding. При расчете среднего для конкретной строки из обучающей выборки, целевое значение этой же строки исключается из расчета. Это помогает модели не "подсматривать" ответ.

Автоматический отбор признаков

После создания множества новых признаков возникает другая проблема: как выбрать самые важные из них? Использование всех подряд может привести к переобучению и замедлению модели. Существуют алгоритмические подходы для автоматического отбора признаков.

Один из таких методов — Recursive Feature Elimination (RFE). Он работает итеративно: сначала модель обучается на всех признаках, затем самый слабый признак (например, с наименьшим коэффициентом в линейной модели) удаляется. Процесс повторяется, пока не останется заданное количество признаков.

Еще один продвинутый метод — это алгоритм Boruta. Он работает как соревнование. Для каждого реального признака создается его "теневая" копия со случайным образом перемешанными значениями. Затем обучается модель (обычно случайный лес), которая пытается предсказать цель, используя и реальные, и теневые признаки. Признак считается важным, только если его значимость стабильно выше, чем у лучшего из теневых признаков. Это позволяет отсеять признаки, которые полезны лишь по случайности.

Lesson image

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

minβ(i=1n(yixiTβ)2+λj=1pβj)\min_{\beta} \left( \sum_{i=1}^{n} (y_i - x_i^T \beta)^2 + \lambda \sum_{j=1}^{p} |\beta_j| \right)

Теперь, когда вы знакомы с продвинутыми техниками подготовки данных, давайте проверим ваши знания.

Quiz Questions 1/5

Какой метод заполнения пропусков обучает модель, используя остальные признаки в качестве предикторов для предсказания недостающих значений в итеративном процессе?

Quiz Questions 2/5

В чем заключается основной риск использования метода Target Encoding и какой подход помогает его снизить?

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