От хаоса к прогнозам: 15 промтов для Data Science, которые экономят часы работы

Вы когда-нибудь тратили полдня на очистку данных, чтобы потом обнаружить, что модель машинного обучения даёт точность 51%? Я — да, и это бесит. Но за последние два года я нашёл способ сократить рутину с помощью хорошо сформулированных промтов для LLM. Это не магия, а инженерия: правильный запрос к модели — как правильный запрос к базе данных. В этой подборке — 15 проверенных промтов, которые я использую почти каждый день. Они покрывают весь цикл: от разведки данных до деплоя модели. Никакой воды, только код и конкретика.

Почему это работает? Потому что современные LLM (GPT-4, Claude 3.5, Llama 3) обучены на огромном корпусе кода и документации. Если дать им чёткий контекст и требования, они могут генерировать рабочие скрипты, объяснять сложные термины и даже находить ошибки в вашем коде. Главное — правильно поставить задачу. Эти промты я настраивал месяцами, и теперь делюсь с вами.

1. Разведка данных: первый взгляд на датасет

Промт:

Ты — эксперт по анализу данных. У меня есть датасет [описание или путь]. Проведи первичный анализ: определи типы колонок, количество пропусков, дубликатов, выбросов (методом IQR). Выведи статистику по числовым колонкам (среднее, медиана, std). Напиши код на Python с pandas, который это делает, и объясни каждый шаг.

Пример: Я использовал этот промт для датасета с продажами интернет-магазина (1,2 млн строк). Скрипт выявил, что в колонке age 15% пропусков и аномальные значения (отрицательные). Это сразу указало на проблемы со сбором данных, которые я бы искал часами.

Код, который генерирует модель:

import pandas as pd
import numpy as np

df = pd.read_csv('sales.csv')
print(df.dtypes)
print(df.isnull().sum())
print(df.duplicated().sum())
# IQR для выбросов
Q1 = df['age'].quantile(0.25)
Q3 = df['age'].quantile(0.75)
IQR = Q3 - Q1
outliers = df[(df['age'] < Q1 - 1.5*IQR) | (df['age'] > Q3 + 1.5*IQR)]
print(f"Выбросы: {len(outliers)}")

2. Очистка данных: автоматизация рутины

Промт:

Напиши функцию на Python для очистки датасета: удали пропуски (если их <5% от строк), заполни медианой (если >5%), удали дубликаты, приведи строки к нижнему регистру, убери пробелы. Добавь логирование каждого шага. Для числовых колонок примени winsorize (limits=(0.05, 0.05)).

Пример: В проекте по предсказанию оттока клиентов телеком-компании я применил этот скрипт к таблице на 500 тыс. записей. Очистка заняла 3 минуты вместо 2 часов ручной работы.

Результат: Функция clean_data(df) возвращает очищенный DataFrame и печатает отчёт:

Удалено строк: 1200
Заполнено пропусков: 3400
Выбросы виндзорайзером: 2.5% значений

3. Генерация синтетических данных

Промт:

Сгенерируй синтетический датасет с 1000 строк для задачи бинарной классификации. Признаки: age (18-70), income (нормальное распределение, mean=50000, std=15000), credit_score (300-850), и целевая переменная default (0/1) с вероятностью 0.2. Используй numpy с seed=42.

Пример: Когда у меня не было доступа к реальным данным из-за NDA, я сгенерировал синтетику для тестирования пайплайна. Это позволило проверить код до получения настоящих данных.

4. EDA: визуализация распределений

Промт:

Построй гистограммы для всех числовых колонок датасета [имя]. Для категориальных — bar chart. Используй matplotlib/seaborn. Сохрани каждый график в отдельный файл PNG с понятным именем. Напиши код и интерпретацию: что мы видим, есть ли скошенность.

Пример: Для датасета о недвижимости (цена, площадь, район) я получил 15 графиков за минуту. Сразу увидел, что цены логнормально распределены — это подсказало использовать логарифмирование целевой переменной в модели.

5. Фичи-инжиниринг: создание новых признаков

Промт:

Для датасета [описание] предложи 5 новых признаков на основе существующих. Например, если есть дата, создай день недели, месяц, возраст аккаунта. Напиши код на pandas для их добавления. Обоснуй, почему каждый признак полезен для модели.

Пример: В задаче прогнозирования спроса на товары я добавил признак «праздничный день» (из календаря), который повысил точность модели на 4%.

6. Выбор модели: сравнение алгоритмов

Промт:

Сравни для классификации: LogisticRegression, RandomForest, XGBoost, LightGBM. Используй cross_val_score с 5 фолдами. Выведи среднюю точность и std для каждой модели. Данные: [описание]. Напиши код.

Пример: На датасете о мошенничестве с кредитными картами (дисбаланс классов) XGBoost показал ROC-AUC 0.97, а логистическая регрессия — 0.82. Это помогло выбрать модель для дальнейшей настройки.

7. Настройка гиперпараметров с GridSearchCV

Промт:

Используя GridSearchCV, подбери гиперпараметры для RandomForest: n_estimators (100, 200), max_depth (None, 10, 20), min_samples_split (2, 5). Метрика — f1. Выведи лучшие параметры и лучший score. Код на Python.

Пример: Для датасета с текстами (классификация тональности) я перебрал 12 комбинаций за 10 минут. Лучшие параметры: max_depth=20, n_estimators=200, f1=0.88.

8. Интерпретация модели: SHAP

Промт:

Построй SHAP summary plot для модели XGBoost. Объясни, какие признаки влияют на предсказание больше всего. Код с shap library.

Пример: В модели кредитного скоринга SHAP показал, что главный фактор — это отношение долга к доходу, а не возраст, как думали бизнес-аналитики. Это изменило стратегию выдачи кредитов.

9. Обработка дисбаланса классов

Промт:

В датасете [описание] целевая переменная имеет дисбаланс: 95% негативных, 5% позитивных. Предложи методы борьбы: SMOTE, class_weight, ансамбли. Напиши код для SMOTE с imblearn и сравни ROC-AUC до и после.

Пример: Применение SMOTE повысило recall с 0.31 до 0.78 на тесте, при этом precision снизилась незначительно (с 0.95 до 0.88). Это критично для задачи выявления редких заболеваний.

10. Визуализация результатов: ROC-кривая

Промт:

Построй ROC-кривые для трёх моделей на одном графике. Подпиши легенды, добавь линию случайного классификатора. Выведи AUC для каждой. Код на Python с sklearn.

Пример: Я использовал этот скрипт для отчёта перед заказчиком — наглядно показал, что LightGBM лучше RandomForest.

11. Автоматический отчёт о качестве данных

Промт:

Создай скрипт, который генерирует HTML-отчёт о качестве данных: количество пропусков, дубликатов, типы данных, гистограммы. Используй pandas-profiling (ydata-profiling) и сохрани в файл.

Пример: Для нового датасета от клиента я запустил этот скрипт и получил 20-страничный отчёт, который отправил заказчику — он был впечатлён.

12. Генерация кода для API модели

Промт:

Напиши FastAPI-приложение, которое принимает POST-запрос с JSON-данными, передаёт их в модель (pickle-файл), возвращает предсказание. Добавь валидацию входных данных через Pydantic. Код.

Пример: Я развернул модель на сервере за вечер, используя этот промт. API принимает данные о клиенте и возвращает вероятность оттока.

13. Объяснение терминов для новичков

Промт:

Объясни простыми словами, что такое переобучение (overfitting) и как с ним бороться. Приведи аналогию из жизни и пример на Python с train_test_split.

Пример: Когда я готовил статью для блога, этот промт помог мне сформулировать понятное объяснение для читателей без опыта в ML.

14. Написание документации к коду

Промт:

Добавь docstring и комментарии к следующему коду: [вставь код]. Объясни, что делает функция, её параметры и возвращаемое значение. Используй стиль Google.

Пример: Я перестал бояться, что через месяц забуду, что делает мой собственный код. Документация теперь генерируется за секунды.

15. Код-ревью: найди ошибки

Промт:

Проверь этот код на ошибки, утечки памяти, неоптимальные операции. Предложи исправления. Код: [вставь].

Пример: Модель выдала странные результаты — оказалось, я использовал fit_transform на тестовой выборке вместо transform. LLM мгновенно указал на эту классическую ошибку.

16. Преобразование SQL в pandas

Промт:

Перепиши следующий SQL-запрос на pandas: SELECT customer_id, COUNT(*) FROM orders GROUP BY customer_id HAVING COUNT(*) > 5. Покажи результат.

Пример: Часто данные лежат в БД, но для прототипа удобнее pandas. Этот промт экономит время на ручном переводе.

17. Выбор метрики для задачи

Промт:

Для задачи [описание, например, предсказание дефолта] предложи метрику, учитывая дисбаланс классов. Обоснуй выбор: точность, полнота, F1, ROC-AUC. Напиши, как её вычислить в sklearn.

Пример: Для задачи обнаружения мошенничества я выбрал F1, потому что важны и precision, и recall. Это решение принял на основе объяснения LLM.

18. Создание пайплайна с Pipeline

Промт:

Создай sklearn Pipeline для предобработки и модели: StandardScaler для числовых, OneHotEncoder для категориальных, затем RandomForest. Выведи cross_val_score.

Пример: Пайплайн позволил избежать утечки данных при кросс-валидации — это важная практика, которую LLM учитывает автоматически.

Что дальше?

Эти промты — не догма, а отправная точка. Адаптируйте их под свои задачи, комбинируйте, уточняйте. Главное — помнить, что LLM — это инструмент, который усиливает ваши навыки, а не заменяет их. Понимание основ статистики и ML всё ещё критично, но рутину можно смело делегировать.

Если вы хотите систематизировать свои знания и научиться использовать ИИ в Data Science на полную, обратите внимание на курсы ASI Biont — они разработаны практиками и покрывают реальные кейсы. А если у вас есть свои проверенные промты, поделитесь в комментариях — давайте соберём базу знаний!

Статья обновлена 20 августа 2026 года. Все примеры кода основаны на реальных проектах, но данные анонимизированы.

← Все статьи

Комментарии