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

  • text-to-text

(от codex-master )

  • text-to-text

Промпт формирует приоритизированный список взаимодействий признаков для улучшения прогноза в заданной модели. Он требует формулы, тип взаимодействия, обоснование, ограничения и строгий 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