Интерпретируемость признаков
FeatMiner возвращает не скрытые представления и не анонимные числовые векторы, а воспроизводимые формулы, построенные из колонок исходных данных. Для каждого признака можно определить:
- какие исходные данные использованы;
- какое условие применено;
- за какой период взята история;
- какую агрегацию или преобразование выполнил алгоритм;
- насколько сильно признак связан с целевой переменной;
- каким Python-кодом он рассчитывается.
Это позволяет проверить бизнес-смысл найденной закономерности, исключить нежелательные источники данных и воспроизвести расчёт вне FeatMiner.
Как читать имя признака
Имя признака последовательно описывает его формулу. Части имени разделяются
двойным подчёркиванием __.
Например:
означает:
- взять колонку
amount; - оставить события, для которых
status = "overdue"; - использовать временную ось
event_date; - рассматривать последние 30 дней;
- вычислить сумму.
Другой пример:
Это максимальный интервал между соседними событиями со статусом overdue.
Сначала FeatMiner применяет условие, затем сортирует выбранные события по
event_date и рассчитывает интервалы.
Имена позволяют быстро просматривать признаки, но полное и однозначное
описание всегда доступно в колонках formula и python_code отчёта.
Формула и исполняемый код
Для каждого выбранного признака FeatMiner сохраняет два представления.
formula — компактное описание для человека:
python_code — воспроизводимый код расчёта на pandas. Его можно проверить,
изменить, встроить в production-процесс или реализовать на другом
технологическом стеке.
Таким образом, результат поиска не зависит от внутреннего состояния FeatMiner: логика каждого признака остаётся доступной после завершения запуска.
Что показывает отчёт
HTML-отчёт связывает техническое описание признака с его статистическими характеристиками:
name— имя итоговой колонки;formula— человекочитаемая формула;python_code— код воспроизведения;target_score— одномерная связь признака с target по выбранной метрике;percent_missing— доля пропущенных значений;psi— оценка изменения распределения между выборками.
Отчёт позволяет начать анализ с наиболее сильных признаков, раскрыть их формулы и проверить, соответствует ли найденная закономерность предметной области.
Высокий target_score показывает предиктивную связь, но не доказывает
причинно-следственную зависимость. Неожиданно сильные признаки необходимо
проверять на утечку target и доступность данных в момент построения прогноза.
Условия и временные горизонты
Условные признаки показывают не только агрегируемую величину, но и подмножество событий, на котором она рассчитана:
Временные формулы дополнительно фиксируют временную ось и горизонт:
Это позволяет отличить, например, общую сумму платежей от суммы за последний месяц или среднюю активность клиента от его недавней активности.
Для корректной интерпретации временных признаков важно правильно указать
event_times,
prediction_time и
cutoff_by. Подробнее:
Защита от утечки из будущего.
Отношения показателей
Формулы отношений используются для поиска изменений структуры и динамики.
Например:
показывает, какая часть месячного объёма пришлась на последнюю неделю.
характеризует долю просроченной суммы в общем объёме.
Числитель и знаменатель полностью представлены в формуле, поэтому смысл отношения можно проверить без изучения внутренней реализации алгоритма.
Как повысить интерпретируемость
Укажите категориальные колонки
Категориальные значения иногда хранятся как числа: код продукта, региона, статуса или канала продаж. Если оставить такую колонку числовой, pipeline может применить к ней арифметические операции, хотя разница между кодами не имеет бизнес-смысла.
Передайте такие колонки через
cat_features:
features = one_to_many_pipeline(
...,
cat_features=(
"product_code",
"region_code",
"application_status",
),
)
Тогда FeatMiner будет использовать их как категории и условия, например:
Опишите временную семантику
Укажите реальные даты событий, момент построения прогноза и колонку,
определяющую доступность строки. Для числовых временных смещений задавайте
RelativeTime с явной единицей измерения.
Используйте предметные названия
Названия вроде payment_amount и days_overdue делают найденные формулы
понятнее, чем var_17 и field_42. Если переименование исходных колонок
невозможно, полезно хранить рядом словарь их бизнес-значений.
Ограничьте пространство формул
Если отдельные преобразования не имеют смысла для предметной области, передайте
собственный набор formulas. Это не только сокращает вычисления, но и не
позволяет алгоритму возвращать формально сильные, однако трудно объяснимые
конструкции.
Интерпретируемость не заменяет проверку
Перед использованием найденного признака рекомендуется ответить на четыре вопроса:
- Доступны ли все его исходные колонки в момент прогноза?
- Имеет ли операция над ними бизнес-смысл?
- Стабильна ли закономерность на отложенной и более поздней выборке?
- Можно ли воспроизвести расчёт тем же способом в production?
FeatMiner автоматизирует поиск сильных закономерностей и предоставляет все необходимые детали для их проверки. Окончательная бизнес- и причинная интерпретация остаётся частью валидации модели.