Каталог взаимодействий признаков для усиления модели
Промпт формирует приоритизированный список взаимодействий признаков для улучшения прогноза в заданной модели. Он требует формулы, тип взаимодействия, обоснование, ограничения и строгий JSON-контракт для последующей автоматизации.
Соблюдай все обязательные требования ниже. Верни только итоговый результат в требуемом формате. Не добавляй вступления, комментарии о процессе, предупреждения, альтернативные версии или просьбы что-либо уточнить. Если часть входных данных отсутствует и исходный промпт допускает рабочие предположения, явно фиксируй их только там, где это прямо требуется. Сохраняй placeholders, JSON, YAML, SQL, код, формулы, названия метрик, пороги, порядок разделов и другие обязательные технические элементы без искажений.
Ниже приведён исходный замысел и обязательные ограничения. Сохрани смысл, полноту и прикладную ценность, но сделай ответ максимально однозначным, компактным и готовым к использованию с первой попытки.
Вы — продвинутый инженер по признакам. Ваша задача — определить и создать мощные взаимодействия признаков на основе {existing_features} в наборе данных {dataset_description}, чтобы улучшить прогнозирование целевой переменной {target_variable}. Учитывайте, что финальная модель будет типа {model_type}.
Перед запуском: замените плейсхолдеры следующими структурами:
- {existing_features} — список признаков в формате: имя: тип (числовой/категориальный/датавременной/булев), единицы (если есть), примерная доля пропусков, уровень кардинальности для категориальных признаков.
- {dataset_description} — краткое описание задачи (регрессия/классификация), размер выборки, распределение классов (если классификация), важные ограничения (временные разрезы, доступные метки), любые доменные ограничения.
- {target_variable} — имя целевой переменной и её тип (непрерывная/дискретная/биномиальная/многоклассовая).
- {model_type} — целевой тип модели (например, tree-based: RandomForest/LightGBM/XGBoost; linear: Logistic/Linear; linear с регуляризацией; нейронная сеть и т. п.).
Требования к результату (формат и содержание):
- Верните приоритизированный список максимум N = 20 взаимодействий (по умолчанию N=20; при необходимости укажите другое N).
- Для каждого взаимодействия предоставьте строго следующие поля:
1. Название (короткое уникальное имя для признака).
2. Формула (с явным использованием имен признаков из {existing_features}, например: (feat_A * feat_B), (feat_C / (feat_D + 1e-6)), if-then выражение: "IF cond THEN expr ELSE expr").
3. Тип взаимодействия (одно из: multiplicative, conditional, ratio, polynomial, derived-categorical, datetime-derived).
4. Краткое объяснение (1–2 предложения): почему это взаимодействие может уловить нелинейность и быть полезно для {target_variable}.
5. Ожидаемый эффект на {model_type} (пояснить, почему именно этому типу модели взаимодействие особенно полезно).
6. Реализация (практические замечания): обработка пропусков, масштабирование/логтрансформация/стандартизация, необходимость кодирования категорий (one-hot/target/ordinal), предостережения по утечке целевой информации.
7. Оценка вычислительной стоимости и риска (низкая/средняя/высокая), включая заметки по кардинальности и росту размерности.
8. Рекомендуемое имя столбца в датасете (как сохранить).
- После списка взаимодействий дайте методологию ранжирования важности созданных признаков для валидации (подробный пошаговый план; см. требования ниже).
- В конце приведите минимальный набор тестов/метрик для утверждения полезности взаимодействий (метрика качества модели, критерий улучшения по сравнению с базой, уровень значимости).
Дополнительные ограничения и правила:
- Не предлагайте взаимодействия, которые явно используют будущую информацию (target leakage).
- Избегайте создания взаимодействий, которые будут давать очень разрежённые/редкие столбцы без указания явной стратегии агрегации.
- Для полиномиальных признаков предлагайте ограничение степени ≤ 3 по умолчанию, указывайте необходимость регуляризации для линейных моделей.
- Для категориальных взаимодействий укажите стратегию снижения кардинальности (целевое кодирование, группировка частых значений, счётчики).
- Для временных признаков укажите лаги/окна и объяснение причинности/утечки.
Методология ранжирования важности и валидации созданных признаков (обязательная пошаговая процедура):
1. Базовая модель и разбиение:
- Определите baseline модель (простая версия {model_type} без новых взаимодействий) и показатели качества (указать конкретные метрики: RMSE/MAE/AUC/F1 и т.д. в зависимости от {target_variable}).
- Используйте k-fold cross-validation (k=5 или 5–10 в зависимости от объёма) или временную валидацию (time-series split), если применимо.
2. Сквозная проверка добавления признаков:
- Для каждого предложенного взаимодействия выполнить: добавить только этот признак к baseline, обучить модель по CV, зафиксировать изменение метрики vs baseline.
- Зарегистрировать среднее улучшение и доверительный интервал.
3. Модельно-ориентированные методы:
- Permutation importance (перестановочная важность) на hold-out: оценить падение метрики при перемешивании каждого взаимодействия.
- Для деревообразных моделей: использовать встроенную feature importance и SHAP values (feature and interaction SHAP), фиксируя ожидаемое направление эффекта.
4. Эксперименты с абляцией:
- Последовательно удалять наиболее подозрительные/дорогие взаимодействия из полной модели и измерять деградацию качества.
5. Статистическая значимость и множественная проверка:
- Для каждого взаимодействия рассчитывать p-value для улучшения метрики (например, через бутстрэп-разницу средних). Применить коррекцию на множественные гипотезы (Benjamini–Hochberg).
- Установить порог полезности (например, среднее улучшение метрики > δ и скорректированный p < 0.05).
6. Практические критерии принятия:
- Подписать признак как "принят", если: 1) значимое улучшение по CV, 2) устойчивость через permutation/SHAP, 3) приемлемая вычислительная стоимость/кардинальность, 4) отсутствие утечки.
7. Документация результатов:
- Таблица с признаками: имя, тип, среднее delta метрики (CV), p-value, permutation-importance, SHAP-importance, CPU/память оценка, решение (принят/отклонён), комментарий.
8. Рекомендации по повторной итерации:
- Повторять цикл создания → тестирования → абляции 2–3 итерации, с постепенным объединением нескольких взаимодействий и проверкой взаимодействий между новыми признаками.
Требуемый финальный формат вывода:
- JSON-массив из объектов для каждого взаимодействия (максимум N), где каждый объект содержит поля из раздела "Для каждого взаимодействия".
- Отдельный JSON-объект "validation_plan" с пошаговой методологией ранжирования (пункты 1–8).
- Строковое поле "baseline_spec" с краткой спецификацией baseline модели и метрик.
Пример JSON-структуры выходных данных (строго иллюстративно, без заполнения):
{
"interactions": [
{
"name": "featA_x_featB",
"formula": "(featA * featB)",
"type": "multiplicative",
"rationale": "...",
"expected_for_model": "...",
"implementation": "...",
"cost": "low",
"column_name": "featA_x_featB"
},
...
],
"validation_plan": { ... },
"baseline_spec": "..."
}
Не добавляйте код выполнения, только описания/формулы и методологию в указанном формате. Ограничься максимум N предложений (по умолчанию 20), при желании замените N на другое число в начале запроса.
ChatGPT, Claude, GigaChat, Алиса ИИ, По нейросетям, Типы промптов, Яндекс GPT