ИИ-технологФлагман NP
ИИ-технолог

Промпты для Data Scientist. 30 готовых примеров для генерации

От NP_Article

ИИ-технолог

Обучение управлению ИИ с 0 до мастерского уровня

250+ уроков Начато наполнение Без инфоцыган и воды

Представьте, что вы часами пытаетесь заставить нейросеть сгенерировать полезный код для анализа данных, а получаете лишь общие фразы или нерабочие скрипты. Знакомая ситуация? Многие специалисты по данным сталкиваются с этим, тратя время на борьбу с ИИ вместо того, чтобы использовать его как мощный инструмент.

Проблема часто кроется не в нейросети, а в способе общения с ней. Качественные, продуманные промпты для data scientist – это не просто вопрос, а точная инструкция, которая ведет к нужному результату. Они экономят часы работы и открывают новые возможности для анализа.

Эта статья – практическое руководство по созданию именно таких запросов. Здесь собраны не теоретические советы, а готовые решения, которые помогут вам:

  • Быстро очищать и подготавливать данные.
  • Проводить глубокий исследовательский анализ.
  • Эффективно создавать и оценивать модели машинного обучения.
  • Автоматизировать рутинную генерацию кода и отчетов.

Забудьте о разочаровании и бесконечных правках. Пора заставить нейросеть работать на вас, а не против вас.

Типичные ошибки при составлении запросов для нейросети

Многие специалисты наступают на одни и те же грабли, пытаясь получить помощь от ИИ. Понимание этих ошибок – первый шаг к тому, чтобы ваши запросы начали приносить реальную пользу, а не головную боль. Вот самые распространенные из них.

  1. Использовать слишком общие запросы без конкретики. Просьба “проанализируй эти данные” – это путь в никуда. Нейросеть не может угадать ваши цели, гипотезы и контекст проекта, поэтому выдаст самый поверхностный результат, который только можно представить.
  2. Не указывать формат желаемого ответа. Если не попросить ответ в виде Python-скрипта, таблицы Markdown или JSON-объекта, вы получите просто текст. В итоге придется тратить время на ручное форматирование, которое мог бы сделать ИИ.
  3. Забывать про ограничения и негативные инструкции. Не указав, чего делать НЕ НУЖНО (например, “не использовать библиотеку X” или “избегать сложных циклов”), вы рискуете получить решение, которое не вписывается в архитектуру вашего проекта.
  4. Слепо доверять сгенерированному коду и результатам. Нейросеть – это помощник, а не оракул. Она может генерировать синтаксически верный, но логически ошибочный код, упускать важные шаги в предобработке данных или “галлюцинировать” несуществующие факты. Всегда проверяйте ее работу.
  5. Просить решить огромную задачу одним промптом. Попытка заставить ИИ “создать модель для прогнозирования оттока клиентов” от начала до конца в одном запросе почти всегда провальна. Это приводит к поверхностным и неполным ответам. Большие задачи нужно разбивать на мелкие, управляемые шаги.
  6. Не предоставлять примеры данных или их структуру. Когда вы просите написать скрипт для обработки данных, не показав, как они выглядят (названия колонок, типы данных, примеры значений), вы заставляете ИИ гадать. Конечно, он с радостью нагадает что-нибудь, что не будет иметь ничего общего с вашей задачей.

Сравнение слабых и сильных промптов для задач Data Science

Разница между хорошим и плохим промптом может быть колоссальной. Она определяет, получите ли вы готовый к использованию фрагмент кода или бесполезный набор слов. Давайте рассмотрим на конкретных примерах, как небольшие изменения в формулировке запроса меняют результат.

Задача Слабый промпт (что обычно делают) Сильный промпт (как надо делать) Почему сильный промпт лучше
Очистка данных “Почисти мой датафрейм” “Ты – специалист по данным. Дан датафрейм pandas с колонками ‘возраст’, ‘доход’, ‘город’. В ‘возрасте’ есть пропуски, в ‘доходе’ – отрицательные значения. Напиши код Python для заполнения пропусков в ‘возрасте’ медианным значением, а отрицательные значения в ‘доходе’ замени на ноль. Предоставь только код.” Четко определена роль, описана структура данных, указаны конкретные проблемы (пропуски, отрицательные значения) и методы их решения (медиана, ноль). Задан формат вывода (только код).
Визуализация данных “Построй гистограмму” “Используя Python и библиотеку Seaborn, построй гистограмму для колонки ‘цена’ в датафрейме ‘df’. Добавь заголовок ‘Распределение цен на недвижимость’. Подпиши оси X как ‘Цена, млн руб.’ и Y как ‘Количество’. Сделай цвет столбцов синим. Не выводи код, который генерирует данные.” Указаны конкретные инструменты (Python, Seaborn), данные (колонка ‘цена’), все элементы графика (заголовок, подписи осей, цвет) и добавлено ограничение, что экономит время.
Выбор модели “Какую модель использовать для классификации?” “Ты – эксперт по машинному обучению. У меня есть задача бинарной классификации. Набор данных – 10 000 строк, 15 числовых признаков, 3 категориальных. Данные сбалансированы. Приоритет – высокая точность (accuracy) и интерпретируемость модели. Предложи 3 подходящие модели, кратко объясни плюсы и минусы каждой для моего случая.” Описан контекст задачи (бинарная классификация), характеристики данных (размер, типы признаков, баланс классов) и критерии выбора (точность, интерпретируемость). Запрос требует структурированного ответа с обоснованием.

30 готовых промптов для Data Scientist

Ниже представлены 30 детализированных промптов, охватывающих ключевые этапы работы специалиста по данным. Каждый из них – это не просто вопрос, а продуманный шаблон, который можно скопировать, адаптировать под свою задачу и получить качественный результат.

1. Первичная очистка данных

Проблема: В наборе данных есть пропуски, некорректные значения и неправильные типы данных, что мешает анализу.

Решение: Промпт генерирует скрипт для базовой очистки данных на основе предоставленной структуры.

Текст промпта:

*****

Ты – опытный специалист по обработке данных на Python. Твоя задача – написать скрипт для предобработки датафрейма pandas.
Контекст: имеется датафрейм, загруженный из CSV-файла. Структура данных следующая: [опишите структуру данных, например: “колонка ‘ID_клиента’ (int), ‘Возраст’ (object, содержит числа и строки), ‘Доход’ (float, есть отрицательные значения и пропуски NaN), ‘Дата_регистрации’ (object, в формате ‘ДД-ММ-ГГГГ’)”].
Задача:
1. Преобразуй колонку ‘Возраст’ в числовой тип, принудительно заменяя нечисловые значения на NaN.
2. Заполни пропуски в колонке ‘Возраст’ средним значением по этой колонке.
3. Замени все отрицательные значения в колонке ‘Доход’ на 0.
4. Заполни пропуски в колонке ‘Доход’ медианным значением.
5. Преобразуй колонку ‘Дата_регистрации’ в формат datetime.
Формат ответа: предоставь только готовый к выполнению код на Python с использованием библиотеки pandas. Добавь краткие комментарии к каждому шагу.
Ограничения: не используй циклы, если задачу можно решить векторными операциями pandas.

*****

Почему это работает: Промпт четко определяет роль, предоставляет полную информацию о структуре данных и проблемах, а также дает пошаговый план действий. Требование векторных операций направляет ИИ на создание производительного кода.

2. Генерация регулярного выражения

Проблема: Нужно извлечь структурированную информацию (например, email-адреса или номера телефонов) из текстовой колонки.

Решение: Промпт помогает создать точное регулярное выражение и код для его применения.

Текст промпта:

*****

Ты – эксперт по регулярным выражениям (regex). Мне нужно извлечь данные из текста.
Задача: создай регулярное выражение на Python для поиска [укажите, что нужно найти, например: “российских номеров мобильных телефонов в форматах +7(XXX)XXX-XX-XX, 89XX-XXX-XXXX, 7XXXXXXXXXX”].
Контекст: у меня есть столбец ‘Комментарии’ в датафрейме pandas, где эти номера встречаются вперемешку с другим текстом.
Требования к ответу:
1. Предоставь само регулярное выражение.
2. Напиши краткое объяснение, как оно работает (каждая часть выражения).
3. Приведи пример кода на Python с использованием библиотеки ‘re’, который находит все вхождения этого паттерна в строке ” [приведите пример строки с несколькими искомыми значениями и шумом] “.
Формат ответа: структурируй ответ по пунктам 1, 2, 3.

*****

Почему это работает: Запрос не просто просит “регулярку”, а требует объяснить ее работу и предоставить пример использования. Это помогает не только решить задачу, но и понять инструмент для будущего применения.

3. Поиск и визуализация выбросов

Проблема: Аномальные значения в данных могут искажать результаты анализа и влиять на качество модели. Их нужно найти.

Решение: Промпт генерирует код для идентификации выбросов с помощью метода межквартильного размаха и их визуализации.

Текст промпта:

*****

Ты – аналитик данных. Твоя задача – помочь мне найти выбросы в числовом признаке.
Контекст: имеется датафрейм pandas `df` с числовой колонкой `[название вашей колонки, например: ‘Стоимость_заказа’]`.
Задача:
1. Напиши код на Python для определения выбросов в указанной колонке с использованием метода межквартильного размаха (IQR). Считай выбросами значения, выходящие за пределы (Q1 – 1.5 * IQR) и (Q3 + 1.5 * IQR).
2. Выведи количество найденных выбросов и их процент от общего числа записей.
3. Создай график boxplot с помощью библиотеки seaborn для визуализации распределения и выбросов в этой колонке.
Формат ответа: предоставь единый блок кода на Python, который последовательно выполняет все три шага. Добавь комментарии.

*****

Почему это работает: Промпт указывает конкретный статистический метод (IQR) и инструмент для визуализации, что убирает неоднозначность и ведет к точному, воспроизводимому результату.

4. Кодирование категориальных признаков

Проблема: Алгоритмы машинного обучения не работают с текстовыми категориальными данными, их нужно преобразовать в числа.

Решение: Промпт предлагает и реализует подходящий метод кодирования для заданного типа признака.

Текст промпта:

*****

Ты – специалист по инжинирингу признаков. Мне нужно закодировать категориальный признак.
Контекст: в моем датафрейме `df` есть колонка `[имя колонки, например: ‘Город’]`. Это номинальный признак с [укажите количество уникальных значений, например: “15 уникальными значениями”].
Задача:
1. Объясни, почему для этого случая подходит метод One-Hot Encoding.
2. Напиши код на Python, который применяет One-Hot Encoding к указанной колонке с использованием `pd.get_dummies()`.
3. Покажи, как добавить новые бинарные колонки к исходному датафрейму и удалить оригинальную колонку ‘Город’.
Формат ответа: сначала краткое объяснение, затем блок кода с комментариями.

*****

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

5. Масштабирование числовых признаков

Проблема: Признаки с разными масштабами (например, возраст от 20 до 70 и доход от 30 000 до 500 000) могут некорректно влиять на модели, чувствительные к масштабу.

Решение: Промпт генерирует код для масштабирования данных с использованием StandardScaler.

Текст промпта:

*****

Ты – эксперт по подготовке данных для машинного обучения.
Контекст: у меня есть датафрейм pandas `df` с несколькими числовыми колонками, которые я буду использовать в модели логистической регрессии: [перечислите колонки, например: “‘Возраст’, ‘Доход’, ‘Стаж_работы'”]. У них сильно различаются диапазоны значений.
Задача:
1. Кратко объясни, почему масштабирование признаков важно для таких моделей, как логистическая регрессия.
2. Напиши код на Python с использованием `StandardScaler` из библиотеки scikit-learn для масштабирования указанных колонок.
3. Покажи, как применить обученный скейлер к данным и создать новый датафрейм с масштабированными признаками.
Ограничения: не затрагивай в коде другие колонки датафрейма.

*****

Почему это работает: Промпт связывает задачу (масштабирование) с конкретной целью (использование в модели) и инструментом (StandardScaler), а также требует объяснения, что закрепляет понимание процесса.

6. Расчет описательных статистик

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

Решение: Промпт генерирует код для быстрого расчета и вывода ключевых описательных статистик.

Текст промпта:

*****

Ты – аналитик данных. Мне нужен быстрый обзор моего набора данных.
Контекст: имеется датафрейм pandas `df`, содержащий как числовые, так и категориальные колонки.
Задача: напиши код на Python, который делает следующее:
1. Для всех числовых колонок в `df` выводит описательные статистики (количество, среднее, стандартное отклонение, мин, макс, квартили) с помощью метода `.describe()`.
2. Для всех категориальных (object/category) колонок выводит количество уникальных значений и самое частое значение.
Формат ответа: два отдельных блока кода с комментариями, один для числовых, другой для категориальных данных. Не генерируй сам датафрейм, предположи, что он уже существует.

*****

Почему это работает: Промпт разделяет задачу для разных типов данных, что соответствует лучшим практикам анализа и приводит к более полному и структурированному отчету.

7. Построение корреляционной матрицы

Проблема: Нужно понять взаимосвязи между числовыми переменными в наборе данных.

Решение: Промпт генерирует код для расчета и визуализации корреляционной матрицы.

Текст промпта:

*****

Ты – специалист по визуализации данных.
Задача: создай тепловую карту (heatmap) для визуализации корреляционной матрицы Пирсона.
Контекст: у меня есть датафрейм pandas `df` с несколькими числовыми признаками: [перечислите 5-7 признаков, например: “‘цена’, ‘площадь’, ‘количество_комнат’, ‘этаж'”].
Требования к коду и визуализации:
1. Используй Python, библиотеки pandas, seaborn и matplotlib.
2. Рассчитай матрицу корреляций для указанных столбцов.
3. Построй тепловую карту с помощью `seaborn.heatmap`.
4. На карте должны быть отображены значения корреляции (аннотации).
5. Используй цветовую палитру ‘coolwarm’ (от синего через белый к красному).
6. Добавь заголовок “Матрица корреляций признаков”.
Формат ответа: единый блок кода на Python с комментариями.

*****

Почему это работает: Промпт содержит очень точные инструкции по визуализации (тип графика, библиотека, цветовая палитра, аннотации, заголовок), что гарантирует получение эстетичного и информативного графика без дополнительных правок.

8. Группировка данных с агрегацией

Проблема: Необходимо рассчитать итоговые показатели (например, средний чек, количество покупок) для различных групп (например, по городам или категориям товаров).

Решение: Промпт генерирует код для выполнения операции `groupby` с несколькими функциями агрегации.

Текст промпта:

*****

Ты – SQL и pandas-аналитик. Мне нужно сгруппировать данные.
Контекст: имеется датафрейм `df` с информацией о продажах. Колонки: ‘Город’, ‘Категория_товара’, ‘Сумма_заказа’, ‘ID_заказа’.
Задача: напиши код на pandas, который группирует данные по колонкам ‘Город’ и ‘Категория_товара’. Для каждой группы рассчитай:
– Общую сумму продаж (‘Сумма_заказа’).
– Средний чек (‘Сумма_заказа’).
– Количество уникальных заказов (‘ID_заказа’).
Результат должен быть представлен в виде нового датафрейма. Отсортируй результат по общей сумме продаж по убыванию.
Формат ответа: блок кода на Python с использованием метода `.groupby().agg()`.

*****

Почему это работает: Промпт четко определяет ключи для группировки и задает несколько функций агрегации для разных колонок, что является типичной, но нетривиальной задачей в анализе данных. Использование `.agg()` направляет на эффективное решение.

9. Визуализация распределения для категорий

Проблема: Нужно сравнить распределение числового признака между несколькими категориями.

Решение: Промпт предлагает создать “ящики с усами” (boxplot) или скрипичные диаграммы (violin plot) для наглядного сравнения.

Текст промпта:

*****

Ты – эксперт по визуализации данных в seaborn.
Задача: сравни распределение числовой переменной для разных категорий.
Контекст: в датафрейме `df` есть числовая колонка `[имя числовой колонки, например: ‘Зарплата’]` и категориальная колонка `[имя категориальной колонки, например: ‘Уровень_должности’]` с 3-5 уникальными значениями.
Требования:
1. Создай график violin plot с помощью seaborn, где по оси X будет ‘Уровень_должности’, а по оси Y – ‘Зарплата’.
2. Кратко объясни, что показывает этот график и как его интерпретировать в данном контексте (что означают “ширина” и “внутренний ящик”).
Формат ответа: сначала блок кода для построения графика, затем текстовое объяснение.

*****

Почему это работает: Запрос не только на генерацию кода, но и на объяснение. Это помогает пользователю не просто получить картинку, но и научиться правильно ее “читать”, извлекая максимум информации.

10. Анализ временного ряда

Проблема: Нужно проанализировать данные, привязанные ко времени, например, найти тренды или сезонность.

Решение: Промпт генерирует код для базового анализа временного ряда: ресемплирование и визуализация.

Текст промпта:

*****

Ты – специалист по анализу временных рядов.
Контекст: у меня есть датафрейм `df` с двумя колонками: ‘date’ (в формате datetime) и ‘sales’ (ежедневные продажи). Данные охватывают период в 2 года.
Задача:
1. Установи колонку ‘date’ в качестве индекса датафрейма.
2. Проведи ресемплирование данных, чтобы получить среднемесячные продажи.
3. Построй линейный график, показывающий динамику среднемесячных продаж за весь период.
4. На том же графике добавь линию скользящего среднего с окном в 3 месяца, чтобы сгладить шум и увидеть тренд.
Формат ответа: единый блок кода на Python (pandas, matplotlib) с комментариями к каждому шагу.

*****

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

11. Генерация полиномиальных признаков

Проблема: Линейные модели не могут уловить нелинейные зависимости в данных. Нужно создать новые признаки, чтобы помочь модели.

Решение: Промпт генерирует код для создания полиномиальных признаков и взаимодействий.

Текст промпта:

*****

Ты – специалист по инжинирингу признаков для машинного обучения.
Контекст: я строю модель линейной регрессии, но подозреваю, что зависимость между признаком `[имя признака X, например: ‘Опыт_работы’]` и целевой переменной нелинейная.
Задача:
1. Напиши код, который использует `PolynomialFeatures` из scikit-learn для создания полиномиальных признаков второй степени (включая взаимодействия) для одного или нескольких исходных признаков `[X1, X2, …]`.
2. Объясни, что будет в результате: какие новые колонки появятся.
3. Покажи, как объединить эти новые признаки с исходным датафреймом.
Формат ответа: блок кода с детальными комментариями, после него – краткое объяснение.

*****

Почему это работает: Промпт нацелен на решение конкретной проблемы (нелинейность) с помощью стандартного, но мощного инструмента. Требование объяснить результат помогает избежать путаницы с новыми признаками.

12. Создание признаков на основе даты

Проблема: Колонка с датой сама по себе бесполезна для большинства моделей, но из нее можно извлечь много ценной информации (день недели, месяц, год).

Решение: Промпт генерирует код для извлечения полезных признаков из колонки с датой.

Текст промпта:

*****

Ты – аналитик данных, мастер работы с датами в pandas.
Контекст: в датафрейме `df` есть колонка `[имя колонки с датой, например: ‘signup_date’]` типа datetime.
Задача: напиши код на pandas, который создает на основе этой колонки новые признаки:
– Год (`year`)
– Месяц (`month`)
– День недели (`dayofweek`, где 0=понедельник)
– Номер недели в году (`weekofyear`)
– Признак выходного дня (`is_weekend`, булев тип)
Новые колонки должны быть добавлены в исходный датафрейм `df`.
Формат ответа: только код на Python с комментариями.

*****

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

13. Отбор признаков с помощью RFECV

Проблема: В данных слишком много признаков, некоторые из них могут быть шумовыми и ухудшать качество модели. Нужно автоматически отобрать лучшие.

Решение: Промпт генерирует код для рекурсивного отбора признаков с кросс-валидацией.

Текст промпта:

*****

Ты – эксперт по машинному обучению и отбору признаков.
Контекст: у меня есть набор данных для задачи [укажите тип задачи, например: “классификации”] с матрицей признаков `X` и вектором ответов `y`. Признаков около 50, и я хочу отобрать наиболее важные.
Задача:
1. Напиши код на Python, который использует `RFECV` (Recursive Feature Elimination with Cross-Validation) из scikit-learn для отбора оптимального набора признаков.
2. В качестве базовой модели для оценки важности признаков используй `[название модели, например: “LogisticRegression()”]`.
3. Укажи параметры для кросс-валидации (например, `cv=5`).
4. После обучения `RFECV` выведи оптимальное количество признаков и список их названий.
Формат ответа: единый блок кода с подробными комментариями. Предположи, что X (датафрейм pandas) и y уже существуют.

*****

Почему это работает: Промпт указывает на продвинутый и надежный метод отбора признаков (RFECV), который не просто ранжирует их, а находит оптимальное подмножество, что часто дает лучший результат, чем простые методы.

14. SQL-запрос для объединения таблиц

Проблема: Данные для анализа хранятся в разных таблицах реляционной базы данных, и их нужно объединить.

Решение: Промпт помогает написать корректный SQL-запрос с нужным типом JOIN.

Текст промпта:

*****

Ты – опытный SQL-разработчик.
Задача: напиши SQL-запрос для объединения двух таблиц.
Контекст:
– Таблица 1: `users` с колонками `user_id`, `name`, `registration_date`.
– Таблица 2: `orders` с колонками `order_id`, `user_id`, `amount`, `order_date`.
Мне нужно получить список всех пользователей (`name` из таблицы `users`) и общую сумму их заказов (`amount` из `orders`). Важно: в результат должны попасть даже те пользователи, у которых не было ни одного заказа (сумма для них должна быть 0).
Формат ответа: предоставь только готовый к выполнению SQL-запрос.

*****

Почему это работает: Промпт четко формулирует бизнес-требование (“включить пользователей без заказов”), что напрямую указывает на необходимость использования `LEFT JOIN`, а не `INNER JOIN`. Это ключевой нюанс, который часто упускают новички.

15. Обучение модели логистической регрессии

Проблема: Нужно построить базовую модель для задачи бинарной классификации.

Решение: Промпт генерирует полный пайплайн для обучения и оценки модели логистической регрессии.

Текст промпта:

*****

Ты – специалист по машинному обучению.
Задача: напиши полный пайплайн на Python для обучения модели бинарной классификации.
Контекст: есть датафрейм `df` с признаками и целевой переменной `[имя целевой колонки]`.
План действий:
1. Определи матрицу признаков `X` и вектор цели `y`.
2. Раздели данные на обучающую и тестовую выборки в соотношении 80/20 с использованием `train_test_split`. Установи `random_state=42`.
3. Обучи модель `LogisticRegression` на обучающих данных.
4. Сделай предсказания на тестовых данных.
5. Рассчитай и выведи метрики: accuracy, precision, recall, F1-score и ROC-AUC.
Формат ответа: единый блок кода на Python с использованием scikit-learn. Добавь комментарии к каждому шагу.

*****

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

16. Построение модели случайного леса

Проблема: Логистическая регрессия дает недостаточное качество, нужна более сложная и мощная модель.

Решение: Промпт для обучения модели случайного леса (Random Forest).

Текст промпта:

*****

Ты – эксперт по ансамблевым методам машинного обучения.
Задача: обучить модель `RandomForestClassifier`.
Контекст: У меня есть подготовленные обучающие (`X_train`, `y_train`) и тестовые (`X_test`, `y_test`) выборки для задачи классификации.
Требования:
1. Инициализируй `RandomForestClassifier` с параметрами: `n_estimators=100`, `max_depth=10`, `random_state=42`.
2. Обучи модель на обучающей выборке.
3. Оцени качество модели на тестовой выборке, выведя `classification_report` и матрицу ошибок (confusion matrix) с помощью `seaborn.heatmap`.
Формат ответа: блок кода на Python с комментариями.

*****

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

17. Подбор гиперпараметров с помощью GridSearchCV

Проблема: Гиперпараметры модели, заданные по умолчанию, редко бывают оптимальными. Их нужно настроить.

Решение: Промпт генерирует код для автоматического подбора лучших гиперпараметров с помощью поиска по сетке.

Текст промпта:

*****

Ты – специалист по оптимизации моделей машинного обучения.
Задача: настрой гиперпараметры для модели `[название модели, например: “XGBoost Classifier”]` с помощью `GridSearchCV`.
Контекст: есть обучающая выборка `X_train`, `y_train`.
План:
1. Определи сетку гиперпараметров для поиска. Пример для XGBoost: `param_grid = {‘n_estimators’: [100, 200], ‘max_depth’: [3, 5, 7], ‘learning_rate’: [0.1, 0.01]}`.
2. Инициализируй `GridSearchCV` с моделью, сеткой параметров, кросс-валидацией (`cv=3`) и метрикой для оценки (`scoring=’roc_auc’`).
3. Запусти поиск на обучающих данных.
4. После завершения поиска выведи наилучшие найденные параметры (`best_params_`) и наилучший результат на кросс-валидации (`best_score_`).
Формат ответа: полный код на Python.

*****

Почему это работает: Промпт автоматизирует одну из самых трудоемких частей в машинном обучении. Указание конкретных параметров (модель, сетка, cv, scoring) делает запрос очень точным и эффективным.

18. Обучение модели кластеризации K-Means

Проблема: Нужно разбить набор данных на группы (кластеры) схожих объектов, не имея предварительной разметки.

Решение: Промпт для обучения модели K-Means и визуализации результатов.

Текст промпта:

*****

Ты – эксперт по обучению без учителя.
Задача: провести кластеризацию данных с помощью алгоритма K-Means.
Контекст: есть датафрейм `X` с двумя числовыми признаками (`[feature1]`, `[feature2]`) для визуализации.
План:
1. Обучи модель `KMeans` из scikit-learn с `n_clusters=4` и `random_state=42` на данных `X`.
2. Получи метки кластеров для каждой точки.
3. Создай scatter plot (диаграмму рассеяния), где точки раскрашены в соответствии с кластером, к которому они принадлежат.
4. На этом же графике отметь центры кластеров (например, красными крестами).
Формат ответа: единый блок кода на Python с комментариями.

*****

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

19. Определение оптимального числа кластеров

Проблема: В K-Means нужно заранее задать количество кластеров (k), но как выбрать это число?

Решение: Промпт для построения графика “метода локтя”, помогающего найти оптимальное k.

Текст промпта:

*****

Ты – специалист по кластерному анализу.
Задача: помочь мне выбрать оптимальное количество кластеров `k` для алгоритма K-Means с помощью “метода локтя”.
Контекст: есть набор данных `X` для кластеризации.
Требования:
1. Напиши код, который в цикле обучает модель K-Means для разного количества кластеров (например, от 1 до 10).
2. Для каждой модели рассчитывай сумму квадратов расстояний точек до центров их кластеров (атрибут `inertia_`).
3. Построй линейный график, где по оси X – количество кластеров `k`, а по оси Y – соответствующее значение `inertia_`.
4. Добавь на график заголовок “Метод локтя для определения оптимального k” и подпиши оси.
Формат ответа: код на Python.

*****

Почему это работает: Промпт автоматизирует стандартную процедуру для выбора гиперпараметра в K-Means, предоставляя визуальный инструмент для принятия обоснованного решения, а не выбора `k` наугад.

20. Интерпретация модели с помощью SHAP

Проблема: Сложные модели, такие как градиентный бустинг, работают как “черный ящик”. Трудно понять, почему модель приняла то или иное решение.

Решение: Промпт генерирует код для использования библиотеки SHAP, чтобы объяснить предсказания модели.

Текст промпта:

*****

Ты – эксперт по интерпретируемости моделей машинного обучения (Explainable AI).
Задача: объяснить предсказания обученной модели с помощью библиотеки SHAP.
Контекст: у меня есть обученная модель `[тип модели, например: “XGBoost Classifier”]`, назовем ее `model`, и тестовый набор данных `X_test`.
План:
1. Создай объект-эксплейнер `shap.TreeExplainer(model)`.
2. Рассчитай значения SHAP для тестового набора данных `X_test`.
3. Построй summary plot (`shap.summary_plot`), который показывает важность признаков и их влияние на предсказание.
4. Объясни, как читать этот график: что означают ось X, цвет точек и их расположение.
Формат ответа: сначала блок кода, затем текстовое объяснение графика.

*****

Почему это работает: Промпт обращается к передовому методу в области XAI. Требование объяснить график делает результат особенно ценным, так как графики SHAP могут быть сложны для новичков.

21. Построение кривой ROC-AUC

Проблема: Одной метрики (например, accuracy) недостаточно для полной оценки модели классификации, особенно на несбалансированных данных.

Решение: Промпт для построения ROC-кривой и расчета AUC, которые показывают качество модели при разных порогах классификации.

Текст промпта:

*****

Ты – специалист по оценке моделей машинного обучения.
Задача: построить кривую ROC и рассчитать площадь под ней (AUC).
Контекст: имеется обученный классификатор `model`, а также тестовые данные `X_test` и истинные метки `y_test`.
Требования к коду:
1. Получи вероятности принадлежности к положительному классу с помощью `model.predict_proba(X_test)`.
2. Рассчитай значения FPR (False Positive Rate) и TPR (True Positive Rate) с помощью `roc_curve` из scikit-learn.
3. Рассчитай значение ROC-AUC с помощью `roc_auc_score`.
4. Построй график ROC-кривой (TPR от FPR), подпиши оси, добавь легенду со значением AUC и диагональную линию (случайное угадывание).
Формат ответа: единый блок кода на Python с комментариями.

*****

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

22. Сохранение и загрузка модели

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

Решение: Промпт для сохранения и последующей загрузки модели с использованием библиотеки `joblib`.

Текст промпта:

*****

Ты – MLOps-инженер. Мне нужно сохранить и загрузить обученную модель.
Контекст: в переменной `model` хранится обученный объект модели scikit-learn.
Задача:
1. Напиши код, который сохраняет объект `model` в файл с именем `[имя_файла.joblib]` с помощью библиотеки `joblib`.
2. Напиши отдельный блок кода, который загружает эту модель из файла в новую переменную `loaded_model`.
3. Добавь проверку, что загруженная модель работает, сделав предсказание для одного примера.
Формат ответа: два блока кода (сохранение и загрузка) с пояснениями. Кратко объясни, почему `joblib` часто предпочтительнее `pickle` для объектов scikit-learn.

*****

Почему это работает: Промпт охватывает полный цикл (сохранение, загрузка, проверка) и просит объяснить выбор инструмента. Это практический навык, необходимый для внедрения моделей.

23. Генерация кода для простого API на Flask

Проблема: Обученная модель лежит в файле. Как сделать так, чтобы другие сервисы могли к ней обращаться и получать предсказания?

Решение: Промпт генерирует минимально рабочий веб-сервис на Flask, который загружает модель и предоставляет endpoint для предсказаний.

Текст промпта:

*****

Ты – Python-разработчик, специализирующийся на бэкенде и MLOps.
Задача: создай простой веб-сервис на Flask для обслуживания модели машинного обучения.
Контекст: есть сохраненная модель в файле `model.joblib`. Модель принимает на вход вектор из [укажите количество] признаков и возвращает предсказание (0 или 1).
Требования к API:
1. Сервис должен при старте загружать модель из файла `model.joblib`.
2. Должен быть один endpoint `/predict`, принимающий POST-запросы с JSON.
3. JSON на входе должен иметь вид `{“features”: […список_значений_признаков…]}`.
4. В ответ сервис должен возвращать JSON с предсказанием, например, `{“prediction”: 1}`.
5. Добавь базовую обработку ошибок (например, если JSON неверного формата).
Формат ответа: полный, готовый к запуску `.py` файл с кодом на Flask.

*****

Почему это работает: Этот промпт – мост между Data Science и разработкой. Он позволяет быстро создать прототип сервиса, превращая модель из артефакта в реально работающий продукт.

24. Объяснение фрагмента кода

Проблема: Вы нашли в чужом проекте или в интернете сложный фрагмент кода (например, с использованием list comprehensions и лямбда-функций) и не до конца понимаете, как он работает.

Решение: Промпт просит ИИ пошагово объяснить, что делает каждая часть кода.

Текст промпта:

*****

Ты – опытный Python-разработчик и наставник.
Задача: объясни мне этот фрагмент кода на Python так, как будто я начинающий.
Код для объяснения:
“`python
[вставьте сюда сложный фрагмент кода, например:
result = [lambda x: x*i for i in range(5)][2](3)
] “`
Требования к объяснению:
1. Опиши общую цель этого кода.
2. Пошагово разбери, что происходит в каждой части выражения.
3. Объясни “подводные камни” или неочевидное поведение, если они есть (например, позднее связывание в лямбда-функциях).
4. Какой итоговый результат будет в переменной `result` и почему.
Формат ответа: подробное текстовое объяснение, структурированное по пунктам.

*****

Почему это работает: Промпт превращает ИИ в персонального ментора. Он не просто дает ответ, а учит, разбирая сложные концепции на простых составляющих и указывая на тонкие моменты.

25. Рефакторинг кода

Проблема: У вас есть работающий, но неэффективный или нечитаемый код (например, с вложенными циклами).

Решение: Промпт просит переписать код, сделав его более “пайтоническим”, производительным и читаемым.

Текст промпта:

*****

Ты – эксперт по стилю кода Python (PEP 8) и оптимизации.
Задача: провести рефакторинг предоставленного фрагмента кода.
Исходный код:
“`python
[вставьте сюда ваш код, например:
new_list = [] for i in range(len(my_list)):
if my_list[i] > 10:
new_list.append(my_list[i] * 2)
] “`
Требования к рефакторингу:
1. Перепиши код, чтобы он был более компактным и читаемым, используя идиомы Python (например, list comprehensions).
2. Убедись, что новый код выполняет ту же самую логику.
3. Кратко объясни, какие преимущества у нового варианта кода по сравнению со старым (производительность, читаемость).
Формат ответа: сначала переписанный код, затем объяснение преимуществ.

*****

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

26. Написание юнит-тестов

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

Решение: Промпт генерирует юнит-тесты для функции с использованием стандартной библиотеки `unittest` или `pytest`.

Текст промпта:

*****

Ты – инженер по качеству (QA Engineer), специализирующийся на автоматизированном тестировании в Python.
Задача: напиши набор юнит-тестов для следующей функции, используя фреймворк `[выберите: “pytest” или “unittest”]`.
Тестируемая функция:
“`python
[вставьте сюда код вашей функции, например:
def calculate_price(base_price, discount_percent):
if not 0 <= discount_percent <= 100: raise ValueError("Discount must be between 0 and 100") return base_price * (1 - discount_percent / 100) ] ``` Тестовые случаи, которые нужно покрыть: 1. Тест с нормальными, валидными данными. 2. Тест с граничным значением скидки (0% и 100%). 3. Тест с некорректными данными (отрицательная скидка), который должен проверить выбрасывание исключения `ValueError`. Формат ответа: полный код тестового файла.

*****

Почему это работает: Промпт не просто просит “написать тесты”, а перечисляет конкретные сценарии (позитивный, негативный, граничный), что является основой грамотного тестирования и приводит к созданию надежного тестового покрытия.

27. Генерация документации (docstrings)

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

Решение: Промпт генерирует строку документации (docstring) для функции в заданном формате (например, Google Style).

Текст промпта:

*****

Ты – технический писатель, создающий документацию для кода на Python.
Задача: напиши подробную строку документации (docstring) для следующей функции в стиле [выберите стиль, например: “Google” или “NumPy”].
Функция:
“`python
[вставьте сюда вашу функцию без docstring] def process_data(df, target_column, scaler=None):
# … (код функции)
return processed_df
“`
Требования к docstring:
1. Краткое однострочное описание.
2. Более подробное описание работы функции.
3. Секция `Args` с описанием каждого аргумента, его типа и является ли он опциональным.
4. Секция `Returns` с описанием возвращаемого значения и его типа.
Формат ответа: только код функции с полностью заполненной строкой документации.

*****

Почему это работает: Указание конкретного стиля (Google, NumPy) позволяет генерировать документацию, совместимую со стандартными инструментами автогенерации документации, такими как Sphinx. Это профессиональный подход к документированию.

28. Составление плана исследовательского анализа (EDA)

Проблема: Вы получили новый набор данных и не знаете, с чего начать анализ. Нужен структурированный план действий.

Решение: Промпт генерирует пошаговый план для проведения исследовательского анализа данных (EDA).

Текст промпта:

*****

Ты – ведущий аналитик данных.
Задача: составь пошаговый план для проведения исследовательского анализа данных (EDA).
Контекст: я получил новый набор данных о [опишите предметную область, например: “поведении пользователей в мобильном приложении”]. В данных есть информация о пользователях (возраст, пол, город), сессиях (длительность, время начала) и событиях (покупки, клики). Цель – найти инсайты для улучшения продукта.
Требования к плану:
– Структурируй его в виде нумерованного списка шагов.
– Начни с самых базовых проверок (размер, типы данных, пропуски).
– Перейди к одномерному анализу (распределения признаков).
– Затем к двумерному анализу (корреляции, взаимосвязи).
– Включи шаги по визуализации на каждом этапе.
– Предложи 2-3 конкретные гипотезы, которые можно проверить на этих данных.
Формат ответа: нумерованный список.

*****

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

29. Перевод бизнес-задачи в задачу машинного обучения

Проблема: Бизнес ставит задачу в общих терминах (“мы хотим повысить лояльность клиентов”), и неясно, как это превратить в конкретную DS-задачу.

Решение: Промпт помогает переформулировать бизнес-проблему в терминах машинного обучения.

Текст промпта:

*****

Ты – менеджер Data Science проектов, который умеет общаться как с бизнесом, так и с инженерами.
Задача: помоги мне перевести бизнес-цель в формальную постановку задачи машинного обучения.
Бизнес-цель: “[сформулируйте цель, например: Мы хотим заранее определять клиентов, которые собираются уйти от нас в следующем месяце, чтобы предложить им скидку]”.
Требования к ответу:
1. Тип задачи МО: (например, бинарная классификация, регрессия, кластеризация).
2. Целевая переменная: что именно мы будем предсказывать и как ее можно вычислить на исторических данных.
3. Потенциальные признаки: какие данные могут быть полезны для предсказания (3-5 примеров).
4. Метрика качества: как мы будем измерять успех модели с точки зрения бизнеса (например, precision, чтобы не тратить скидки зря, или recall, чтобы не упустить уходящих клиентов).
Формат ответа: структурированный текст по 4 пунктам.

*****

Почему это работает: Этот промпт – один из самых важных. Он помогает на самом раннем этапе правильно поставить задачу, что является залогом успеха всего проекта. Ошибка здесь может стоить месяцев бесполезной работы.

30. Подготовка резюме для нетехнических специалистов

Проблема: Вы провели сложный анализ или построили модель, и теперь нужно объяснить результаты коллегам из маркетинга или менеджменту, которые не понимают технические детали.

Решение: Промпт помогает перевести технические выводы на язык бизнеса.

Текст промпта:

*****

Ты – евангелист данных, умеющий объяснять сложные вещи простым языком.
Задача: подготовь краткое резюме (summary) по результатам анализа для аудитории без технического бэкграунда.
Технические выводы: “[перечислите ваши технические выводы, например: Модель градиентного бустинга показала ROC-AUC 0.85. Наиболее важные признаки: ‘длительность_последней_сессии’ и ‘количество_покупок_за_месяц’. Коэффициент корреляции между ‘возрастом’ и ‘суммой_чека’ составил 0.15]”.
Требования к резюме:
– Избегай технических терминов (ROC-AUC, градиентный бустинг, корреляция).
– Сформулируй главный вывод в одном предложении.
– Переведи “важность признаков” в практические инсайты (например, “Клиенты, которые…”)
– Предложи 1-2 конкретных действия, которые можно предпринять на основе этих выводов.
Формат ответа: 2-3 абзаца текста на простом и понятном языке.

*****

Почему это работает: Промпт решает ключевую проблему “последней мили” в Data Science – донесение ценности своей работы до тех, кто принимает решения. Умение это делать часто важнее, чем еще один процент точности модели.

Ключевые команды для управления выводом нейросети

Освоив базовые промпты для data scientist, можно пойти дальше и научиться более тонко управлять поведением нейросети. Существуют специальные команды и модификаторы, которые позволяют контролировать структуру, стиль и глубину ответа.

Команда / Модификатор Описание Пример использования в промпте
Думай пошагово (Think step-by-step) Заставляет модель сначала выстроить внутреннюю логическую цепочку рассуждений, а затем дать ответ. Значительно повышает качество решения сложных задач. “Реши следующую задачу. Важно: сначала думай пошагово, опиши свой план, а потом дай итоговый код.”
Действуй как критик Предлагает модели оценить собственный или предложенный ответ, найти в нем слабые места, ошибки и потенциальные улучшения. “Вот мой код для [описание задачи]. Действуй как строгий и опытный ревьюер кода. Найди все возможные ошибки, узкие места и предложи улучшения.”
Предложи 3 альтернативы Вместо одного решения заставляет модель сгенерировать несколько разных подходов к одной и той же задаче, часто с разной сложностью или издержками. “Напиши функцию на Python для [описание задачи]. Предложи 3 альтернативных реализации: самую простую, самую быструю и самую ‘пайтоническую’.”
Структурируй ответ в виде [формат] Четко задает формат вывода. Особенно полезно для интеграции с другими системами. Популярные форматы: JSON, Markdown-таблица, XML. “Проанализируй текст и извлеки из него имена, даты и суммы. Структурируй ответ в виде JSON-массива объектов, где каждый объект имеет поля ‘name’, ‘date’, ‘amount’.”
Объясни как для пятилетнего (Explain Like I’m 5) Требует максимально упростить объяснение сложной концепции, используя аналогии и избегая технического жаргона. “Что такое градиентный бустинг? Объясни, как будто мне пять лет.”
Без лишних объяснений/только код Команда-ограничитель, которая полезна, когда вам нужен только конечный артефакт (код, JSON, SQL-запрос) без сопроводительного текста. “Напиши SQL-запрос, который… Предоставь только код, без объяснений и приветствий.”

Неочевидные советы для продвинутого использования

Когда базовые приемы уже освоены, наступает время для хитростей, которые отличают опытного пользователя ИИ от новичка. Эти советы помогут вам выжать максимум из нейросетей и сделать вашу работу еще эффективнее.

  1. Сохраняйте удачные сессии чата с ИИ как шаблоны. Если вы потратили время на создание сложного, многошагового промпта, который дал отличный результат, не надейтесь на историю чата. Скопируйте всю цепочку в отдельный текстовый файл. В следующий раз вам не придется изобретать велосипед заново.
  2. Используйте ИИ для генерации синтетических данных. Иногда для тестирования кода или обучения модели не хватает данных. Попросите нейросеть сгенерировать датафрейм с нужной структурой, типами колонок и даже с заданными зависимостями между ними. Это идеальный способ быстро создать “песочницу” для экспериментов.
  3. Просите ИИ взять на себя роль “адвоката дьявола”. Вместо того чтобы просить подтвердить вашу гипотезу, попросите ее опровергнуть. “Я думаю, что [ваша гипотеза]. Возьми на себя роль скептика и приведи 3 аргумента, почему я могу быть неправ и какие данные это могли бы подтвердить”. Это мощный прием для поиска слабых мест в вашей аргументации.
  4. Уточняйте версии библиотек и языка. Код, который работал с pandas 1.5, может сломаться в pandas 2.0. Если для вас важна совместимость, прямо указывайте в промпте: “Напиши код, используя синтаксис Python 3.9 и функции, доступные в pandas версии 1.5.3”.
  5. Экспериментируйте с температурой, если интерфейс позволяет. Некоторые ИИ-инструменты позволяют настраивать “температуру” генерации. Низкая температура (ближе к 0) дает более предсказуемые, детерминированные ответы. Высокая (ближе к 1) – более креативные и разнообразные. Для генерации кода лучше низкая, для мозгового штурма идей – высокая.
  6. Не бойтесь “учить” модель в рамках одного диалога. Если ИИ ошибся, не начинайте новый чат. Поправьте его: “Нет, в этой части ты ошибся. Нужно использовать не `INNER JOIN`, а `LEFT JOIN`, потому что… А теперь, с учетом этого, перепиши запрос”. Модель учтет вашу поправку в последующих ответах в рамках текущей сессии.