Вы когда-нибудь тратили полдня на очистку данных, чтобы потом обнаружить, что модель машинного обучения даёт точность 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 года. Все примеры кода основаны на реальных проектах, но данные анонимизированы.
Комментарии