Если вы хоть раз писали df.groupby().agg() или сутками отлаживали пайплайн, вы знаете: в Data Science побеждает не тот, кто знает больше, а тот, кто быстрее превращает гипотезу в работающий код. По данным Kaggle, 76% времени data scientist’а уходит на рутинные задачи — очистку данных, подготовку фичей и настройку окружения, а не на саму модель. Но есть способ вырваться из этого цикла: промпты. Я собрал 12 проверенных шаблонов, которые закрывают 90% типовых задач — от первой строчки pandas до деплоя модели. Каждый промт можно скопировать и адаптировать под свою задачу за минуту. Поехали.
1. Исследование данных: первый взгляд на датасет
Когда вы получаете новый датасет, первый вопрос — что внутри? Вместо того чтобы вручную вызывать df.head(), df.info(), df.describe(), скормите LLM такой промт:
Ты — опытный data scientist. Проведи разведочный анализ данных (EDA) для датасета, который я загружу. Выполни:
1. Выведи первые 5 строк и последние 5 строк.
2. Покажи типы данных, количество пропусков и уникальных значений для каждой колонки.
3. Построй гистограммы для числовых колонок и bar chart для категориальных (используй matplotlib/seaborn).
4. Посчитай корреляционную матрицу и выдели колонки с корреляцией > 0.7.
5. Сформулируй 3 инсайта о данных, которые помогут в дальнейшем моделировании.
Данные:
[вставьте код для загрузки или образец данных]
Пример использования: вы загрузили данные о транзакциях. Промт выявляет, что 30% записей имеют пропуски в колонке amount, а customer_id содержит дубликаты — это сразу направляет вас на этап очистки.
2. Очистка данных: от грязи к порядку
Этот промт генерирует функции для обработки пропусков, выбросов и дубликатов. Он не просто выдаёт код, а объясняет, почему выбраны те или иные методы.
Напиши Python-функции для очистки датасета (pandas). Для каждой функции укажи docstring и пример вызова. Требования:
- Функция `handle_missing(df, strategy='median')` — заполняет пропуски: для числовых медианой, для категориальных модой.
- Функция `remove_outliers_iqr(df, columns)` — удаляет выбросы методом IQR (межквартильный размах) для указанных колонок.
- Функция `deduplicate(df, subset=None)` — удаляет дубликаты, оставляя первое вхождение.
- Добавь функцию `clean_column_names(df)` — приводит названия колонок к snake_case.
Данные: [описание структуры]
Пример: после применения вы получаете готовый модуль data_cleaning.py, который можно переиспользовать в других проектах.
3. Генерация синтетических данных для тестов
Иногда нужно проверить пайплайн, а реальных данных нет. Этот промт создаёт реалистичный синтетический датасет с заданными параметрами.
Сгенерируй синтетический датасет на Python (numpy/pandas) для задачи [регрессия/классификация]. Включи:
- 1000 строк, 5 числовых фич (нормальное распределение), 3 категориальные (случайные строки), 1 целевую переменную.
- Добавь 10% пропусков в случайные колонки.
- Для классификации сделай целевую переменную бинарной с дисбалансом классов 70/30.
- Выведи первые 5 строк и описание каждой колонки.
Применение: вы тестируете новый алгоритм обработки пропусков, не дожидаясь доступа к боевым данным.
4. Разведочный анализ с автовизуализацией
Этот промт заставляет LLM самостоятельно выбрать лучшие графики и подписать оси — экономит часы на подборе визуализаций.
Построй 5 графиков для датасета (используя seaborn/matplotlib), которые максимально информативны для понимания данных:
1. Распределение целевой переменной.
2. Boxplot для каждой числовой фичи по категориям целевой.
3. Heatmap корреляций.
4. Pairplot для 4 самых важных фич (по важности из RandomForest).
5. Countplot для категориальных фич.
Для каждого графика добавь подпись и вывод, что он показывает. Данные: [ссылка на данные или код]
5. Фича-инжиниринг на основе доменных знаний
Этот промт помогает сгенерировать новые признаки, используя экспертные знания о предметной области.
Ты — эксперт по [укажите область, например, телеком]. Предложи 10 новых фич для датасета [описание полей]. Для каждой фичи объясни, как она может повлиять на целевую переменную, и напиши код для её создания на pandas. Например, для данных о клиентах: «частота звонков в ночное время», «средняя длительность разговора за последний месяц».
6. Построение baseline-модели
Быстрый способ получить отправную точку для сравнения — промт, который генерирует полный пайплайн обучения.
Обучи baseline-модель для [классификации/регрессии] на датасете [описание]. Используй scikit-learn:
1. Раздели данные на train/test (80/20) со стратификацией.
2. Обучи LogisticRegression (для классификации) или LinearRegression (для регрессии) с нормализацией признаков.
3. Вычисли метрики: accuracy, precision, recall, F1 (для классификации); MAE, RMSE, R2 (для регрессии).
4. Выведи confusion matrix и feature importance.
5. Сохрани модель через joblib.
Код должен быть готов к запуску.
7. Подбор гиперпараметров с помощью Optuna
Оптимизация гиперпараметров — рутина, которую промт превращает в автоматический процесс.
Напиши скрипт для подбора гиперпараметров модели [XGBoost/LightGBM] с помощью Optuna. Задай:
- Пространство поиска: learning_rate [0.001-0.1], max_depth [3-10], n_estimators [100-1000], subsample [0.5-1.0].
- Целевую метрику: [F1/RMSE].
- 50 trials с кросс-валидацией (5-fold).
- Выведи лучшие параметры и метрику на тесте.
Данные: [подготовленный датасет]
8. Интерпретация модели: SHAP и LIME
Объяснимый ИИ — требование многих регуляторов. Этот промт генерирует код для анализа важности фич.
Для обученной модели [XGBoost] построй SHAP-анализ:
1. Вычисли SHAP values для тестовой выборки.
2. Построй summary plot (bee swarm) и bar plot.
3. Выбери 3 наблюдения и объясни, какие фичи повлияли на предсказание (force plot).
4. Интерпретируй результаты: какие фичи вносят наибольший вклад и почему.
Используй библиотеку shap.
9. Создание API для модели (FastAPI)
Деплой модели — это не только сохранение весов. Промт генерирует полноценный REST API.
Создай FastAPI-приложение для модели, сохранённой в model.pkl:
1. Эндпоинт /predict, принимающий JSON с признаками и возвращающий предсказание.
2. Эндпоинт /health для проверки статуса.
3. Добавь валидацию входных данных через Pydantic-схемы.
4. Напиши пример запроса с помощью curl.
5. Укажи, как запустить приложение с uvicorn.
Модель: [описание фич]
10. Docker-обёртка для модели
Чтобы модель работала в любом окружении, нужен Dockerfile. Промт создаёт его с учётом зависимостей.
Напиши Dockerfile для Python-приложения, которое использует FastAPI и модель (joblib). Требования:
- Базовый образ python:3.11-slim.
- Установи зависимости из requirements.txt.
- Скопируй код и модель в /app.
- Запусти uvicorn на порту 8000.
- Добавь .dockerignore для исключения лишних файлов.
Также напиши docker-compose.yml для запуска с пробросом порта.
11. Оптимизация пайплайна с помощью DVC
Data Version Control — стандарт в MLOps. Промт помогает настроить версионирование данных.
Опиши шаги для настройки DVC в проекте:
1. Инициализация dvc init.
2. Добавление данных: dvc add data/raw.csv.
3. Создание пайплайна: dvc run -n prepare -d data/raw.csv -o data/processed.csv python prepare.py.
4. Команды для воспроизведения пайплайна: dvc repro.
5. Как подключить удалённое хранилище (S3/Google Drive).
Дай примеры команд для каждого шага.
12. Мониторинг дрейфа модели
После деплоя важно отслеживать смещение данных. Промт генерирует скрипт для обнаружения дрейфа.
Напиши Python-скрипт для обнаружения дрейфа данных (data drift) между обучающей выборкой и новыми данными. Используй:
- PSI (Population Stability Index) для числовых фич.
- Chi-square тест для категориальных.
- Выведи таблицу с метриками и пороговыми значениями (>0.2 — сильный дрейф).
- Визуализируй распределения на графиках.
Данные: [ссылка на train.csv и new_data.csv]
Бонус: промт для автоматизации всего процесса
Этот промт объединяет все этапы в один скрипт — идеально для быстрого прототипирования.
Создай Python-скрипт, который выполняет полный цикл: загрузка данных, очистка, EDA, обучение модели, сохранение артефактов. Используй функции из предыдущих шагов, но объедини их в класс MLPipeline с методами load, clean, eda, train, save. Добавь логирование через logging и обработку исключений.
Как я использую эти промты в своей работе
Я чаще всего применяю промт №6 (baseline) и №8 (SHAP) — они экономят мне минимум час в день. Совет: не копируйте промты бездумно. Адаптируйте их под свои данные: указывайте названия колонок, типы моделей и желаемые метрики. И всегда проверяйте сгенерированный код — LLM могут ошибаться в деталях, особенно в новых версиях библиотек.
Что дальше?
Промпты — это не замена навыков data scientist’а, а усилитель. Они берут на себя рутину, освобождая время для творческих задач — выбора архитектуры модели, интерпретации результатов и общения с бизнесом. Начните с одного промта из списка, адаптируйте его под свою задачу и посмотрите, сколько времени вы сэкономите. Если у вас есть любимые промты — поделитесь в комментариях, я всегда рад пополнить свою коллекцию.
Комментарии