Data Science на автопилоте: 15 промтов, которые превращают EDA, чистку и feature engineering в конвейер
Каждый data scientist знает эту боль: 80% времени уходит не на модели, а на рутину — разведочный анализ, разбор пропусков, рисование графиков, генерацию признаков и проверку гипотез. По оценкам Anaconda State of Data Science, специалисты тратят на подготовку и очистку данных до 45% рабочего времени. А по данным Kaggle Survey, «грязные данные» — главная головная боль в проектах. LLM не заменят статистику, но могут ускорить рутинные шаги в разы, если давать им чёткие, структурированные промты.
В этой подборке — 15 промтов, которые закрывают ключевые этапы пайплайна: от первичного EDA до интерпретации графиков и формулировки выводов. Каждый промт сопровождается примером на реальном датасете (churn, продажи, отток) и пояснением, какой именно этап он автоматизирует. Промты рассчитаны на ChatGPT, Claude, Gemini или локальные модели — главное, чтобы они умели работать с кодом и таблицами. Если вы используете asibiont.com для обучения, эти промты помогут быстрее проходить практику: AI-тьютор проверит код и подскажет, где вы могли ошибиться.
Как пользоваться этой подборкой
Все промты написаны так, чтобы их можно было копировать и вставлять в чат без правок. Они предполагают, что вы уже загрузили датасет или можете описать его структуру. Если вы работаете в Jupyter, удобно сразу просить код на pandas и matplotlib — тогда результат можно выполнить в следующей ячейке. Если вы предпочитаете seaborn или plotly — просто замените библиотеку в промте.
Важно: LLM может ошибаться в синтаксисе или предлагать неоптимальные решения. Всегда проверяйте код на своих данных и сверяйтесь с официальной документацией (pandas.pydata.org, matplotlib.org). Промт — это ускоритель, а не замена вашей экспертизы.
1. Быстрый EDA: профилирование датасета за один запрос
Этап пайплайна: первичный разведочный анализ (EDA).
Зачем: вместо ручного вызова df.info(), df.describe(), df.isnull().sum() и построения гистограмм — один промт, который вернёт структурированный отчёт.
Промт:
Ты — senior data scientist. У меня есть датафрейм pandas `df` с данными о оттоке клиентов телеком-компании. Колонки: customerID, gender, SeniorCitizen, Partner, Dependents, tenure, PhoneService, MultipleLines, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, StreamingTV, StreamingMovies, Contract, PaperlessBilling, PaymentMethod, MonthlyCharges, TotalCharges, Churn.
Сделай следующее:
1. Выведи тип каждого столбца и количество пропусков.
2. Для числовых столбцов — describe() и проверку на выбросы через IQR.
3. Для категориальных — количество уникальных значений и топ-5 по частоте.
4. Предложи 3 гипотезы о связи признаков с целевой переменной Churn.
5. Напиши код на pandas, который всё это выводит в одном отчёте.
Пример использования: вы загружаете Telco Customer Churn (доступен на Kaggle), вставляете промт, получаете готовый отчёт и код. Это экономит 20–30 минут рутинного кода.
Совет: если датасет большой, попросите LLM сначала вывести только схему, а потом — детали по каждой колонке.
2. Пропуски: стратегия заполнения с обоснованием
Этап пайплайна: очистка данных (missing values).
Зачем: пропуски — одна из главных причин падения качества модели. Промт помогает выбрать метод (удаление, среднее, медиана, мода, KNN-импутация) и сразу сгенерировать код.
Промт:
В датафрейме `df` есть пропуски в колонках: TotalCharges (11 пропусков), MonthlyCharges (0), tenure (0). TotalCharges — числовая, но в исходных данных хранилась как object.
1. Объясни, почему TotalCharges может содержать пропуски.
2. Предложи стратегию: удалить строки, заполнить медианой или использовать KNN-импутацию. Обоснуй выбор для каждой колонки.
3. Напиши код на pandas + sklearn, который приводит TotalCharges к float и заполняет пропуски выбранным методом.
4. Проверь, не появились ли новые пропуски после преобразования.
Пример: в Telco Churn TotalCharges часто содержит пустые строки у новых клиентов с tenure=0. Логичнее заполнить нулём или медианой по группе. LLM подскажет вариант и напишет код.
Совет: всегда проверяйте, не приведёт ли импутация к утечке данных (data leakage). Для категориальных признаков лучше использовать отдельную категорию «Unknown».
3. Выбросы: обнаружение и обработка
Этап пайплайна: очистка данных (outliers).
Зачем: выбросы могут исказить статистику и ухудшить модель. Промт помогает найти их и выбрать метод обработки.
Промт:
В датафрейме `df` есть числовые колонки: tenure, MonthlyCharges, TotalCharges.
1. Найди выбросы методом IQR и методом z-score. Сколько их в каждой колонке?
2. Построй boxplot для каждой колонки (matplotlib/seaborn).
3. Предложи, что делать с выбросами: удалить, заменить на границы (winsorize) или оставить. Обоснуй для каждого случая.
4. Напиши код, который применяет выбранную стратегию и сохраняет результат в новый датафрейм `df_clean`.
Пример: в Telco Churn MonthlyCharges может иметь выбросы у клиентов с премиум-услугами. Если это реальные значения, их лучше оставить, но можно ограничить верхним перцентилем.
Совет: не удаляйте выбросы автоматически — сначала поймите их природу. Иногда это ошибки ввода, иногда — ценные аномалии.
4. Категориальные признаки: кодирование без ошибок
Этап пайплайна: feature engineering (encoding).
Зачем: неправильное кодирование (например, LabelEncoder для номинальных признаков) может внести ложную ordinal-связь. Промт подскажет, где One-Hot, а где Ordinal.
Промт:
В датафрейме `df` есть категориальные колонки: gender, Partner, Dependents, Contract, PaymentMethod, InternetService.
1. Определи, какие из них номинальные, а какие порядковые.
2. Для номинальных предложи One-Hot Encoding (pd.get_dummies или sklearn OneHotEncoder), для порядковых — OrdinalEncoder с указанием порядка.
3. Напиши код, который кодирует признаки и не создаёт мультиколлинеарности (drop_first=True для One-Hot).
4. Проверь, что после кодирования не осталось object-колонок.
Пример: Contract имеет порядок: Month-to-month < One year < Two year. Его можно закодировать как 0,1,2. А PaymentMethod — номинальный, только One-Hot.
Совет: для деревьев решений (XGBoost, LightGBM) можно использовать target encoding, но осторожно — только внутри кросс-валидации.
5. Генерация признаков: идеи из предметной области
Этап пайплайна: feature engineering (создание новых признаков).
Зачем: LLM может предложить неочевидные комбинации, которые улучшат модель.
Промт:
У меня есть датасет по оттоку клиентов с колонками: tenure (месяцы), MonthlyCharges, TotalCharges, Contract, InternetService, TechSupport.
Предложи 10 новых признаков, которые могут улучшить предсказание Churn. Для каждого:
- название
- формула или логика
- почему это может быть полезно
- код на pandas для создания
Например: average_monthly_charge = TotalCharges / (tenure + 1).
Пример: признак is_new_customer = tenure < 6 может быть сильным предиктором оттока. LLM предложит ещё несколько вариантов.
Совет: не создавайте признаки, которые приводят к утечке целевой переменной. Всегда проверяйте корреляцию с таргетом.
6. Визуализация: графики, которые говорят сами за себя
Этап пайплайна: EDA + презентация результатов.
Зачем: вместо долгого подбора параметров — готовый код для информативных графиков.
Промт:
Построй 4 графика для датасета Telco Churn:
1. Распределение Churn (countplot).
2. Boxplot MonthlyCharges по Churn.
3. Тепловая карта корреляций числовых признаков.
4. Barplot среднего tenure по Contract и Churn.
Используй matplotlib и seaborn. Добавь заголовки, подписи осей и легенды. Сохрани графики в файлы PNG с dpi=150.
Пример: такой набор графиков сразу показывает, что клиенты с месячным контрактом уходят чаще.
Совет: для интерактивных графиков попросите код на plotly — он лучше для презентаций.
7. Проверка гипотез: статистика без боли
Этап пайплайна: статистический анализ.
Зачем: быстро выбрать тест и интерпретировать p-value.
Промт:
У меня есть две группы: клиенты с Churn=Yes и Churn=No. Я хочу проверить, отличается ли средний MonthlyCharges между группами.
1. Какой статистический тест выбрать: t-test, Mann-Whitney U или что-то другое? Обоснуй.
2. Напиши код на scipy.stats для проведения теста.
3. Интерпретируй результат: если p-value < 0.05, что это значит на практике?
4. Проверь предположения теста (нормальность, равенство дисперсий).
Пример: если p-value < 0.05, можно сказать, что средний чек у ушедших клиентов статистически значимо отличается.
Совет: не путайте статистическую значимость с практической. Даже маленькая разница может быть значимой на больших выборках.
8. Feature importance: интерпретация модели
Этап пайплайна: моделирование + интерпретация.
Зачем: понять, какие признаки влияют на прогноз, и объяснить это бизнесу.
Промт:
Я обучил модель RandomForestClassifier на датасете Telco Churn. Напиши код, который:
1. Выводит feature_importances_ и сортирует их по убыванию.
2. Строит горизонтальный barplot топ-15 признаков.
3. Для топ-3 признаков объясняет, как они влияют на вероятность оттока.
4. Предлагает, какие признаки можно исключить без потери качества.
Пример: если Contract_Month-to-month в топе, это подтверждает гипотезу о важности типа контракта.
Совет: для линейных моделей используйте коэффициенты, для деревьев — SHAP values (библиотека shap).
9. Дисбаланс классов: стратегии борьбы
Этап пайплайна: подготовка данных для модели.
Зачем: в churn-задачах положительный класс часто составляет 10–30%. Промт подскажет, как с этим работать.
Промт:
В датасете Telco Churn доля Churn=Yes около 26%.
1. Объясни, почему дисбаланс классов опасен для модели.
2. Сравни методы: class_weight='balanced', SMOTE, undersampling, комбинация. Для каждого укажи плюсы и минусы.
3. Напиши код на imblearn, который применяет SMOTE только к тренировочной выборке.
4. Предложи метрики для оценки модели при дисбалансе (F1, ROC-AUC, PR-AUC).
Пример: SMOTE создаёт синтетические примеры миноритарного класса, но может привести к переобучению. Всегда применяйте только к train.
Совет: не используйте accuracy при дисбалансе — она обманчива.
10. Автоматизация отчёта: от кода к выводам
Этап пайплайна: финальный отчёт.
Зачем: превратить результаты анализа в текст для стейкхолдеров.
Промт:
На основе проведённого EDA и моделирования по оттоку клиентов сформулируй краткий отчёт для бизнеса (до 300 слов). Включи:
- ключевые факторы оттока (топ-3)
- рекомендации по удержанию
- ограничения анализа
Избегай технического жаргона, пиши для менеджеров.
Пример: вывод может звучать так: «Клиенты с месячным контрактом и без техподдержки уходят в 3 раза чаще. Рекомендуем предлагать скидку на годовой контракт».
Совет: всегда проверяйте выводы на соответствие данным — LLM может упустить контекст.
11. Временные ряды: быстрый анализ трендов
Этап пайплайна: EDA для временных данных.
Зачем: декомпозиция, проверка стационарности, поиск сезонности.
Промт:
У меня есть датафрейм `df` с колонками date (datetime) и sales (float) — ежедневные продажи за 2 года.
1. Построй график временного ряда.
2. Выполни декомпозицию (тренд, сезонность, остатки) с помощью statsmodels.
3. Проверь стационарность тестом Дики-Фуллера.
4. Предложи, какие признаки добавить для прогноза (лаги, скользящие средние, день недели).
5. Напиши код для всего перечисленного.
Пример: если ряд нестационарен, потребуется дифференцирование перед ARIMA.
Совет: для сезонности используйте period=7 для недельной, 365 — для годовой.
12. Кластеризация: сегментация клиентов
Этап пайплайна: unsupervised learning.
Зачем: найти группы клиентов для маркетинга.
Промт:
У меня есть датасет с признаками клиентов: tenure, MonthlyCharges, TotalCharges.
1. Как выбрать количество кластеров для KMeans? Покажи метод локтя и silhouette score.
2. Напиши код для стандартизации данных, обучения KMeans и визуализации кластеров (2D через PCA).
3. Опиши каждый кластер: средние значения признаков и возможные бизнес-интерпретации.
Пример: можно выделить «новых экономных», «лояльных премиум» и «уходящих».
Совет: всегда масштабируйте признаки перед KMeans — иначе признаки с большим разбросом будут доминировать.
13. Проверка качества данных: чек-лист
Этап пайплайна: data quality assurance.
Зачем: систематически проверять данные на типичные проблемы.
Промт:
Составь чек-лист для проверки качества датасета перед моделированием. Включи:
- пропуски
- дубликаты
- выбросы
- несогласованность категорий (например, «Yes» и «yes»)
- утечка данных
- дисбаланс классов
Для каждого пункта напиши код на pandas для проверки.
Пример: проверка дубликатов: df.duplicated().sum(). Несогласованность: df['gender'].unique().
Совет: сохраните чек-лист как функцию и вызывайте в начале каждого проекта.
14. Пайплайн в sklearn: от preprocessing до модели
Этап пайплайна: автоматизация ML-пайплайна.
Зачем: избежать утечки данных и упростить воспроизводимость.
Промт:
Напиши полный пайплайн sklearn для датасета Telco Churn:
- ColumnTransformer: числовые — StandardScaler, категориальные — OneHotEncoder
- классификатор RandomForest
- GridSearchCV по параметрам
- кросс-валидация 5-fold
- вывод лучших параметров и метрик (accuracy, f1, roc_auc)
Используй Pipeline и ColumnTransformer.
Пример: такой пайплайн легко сохранить через joblib и использовать в продакшене.
Совет: всегда разделяйте train/test до любых преобразований.
15. Интерпретация графиков: что говорят данные
Этап пайплайна: анализ и выводы.
Зачем: LLM может помочь прочитать график и сформулировать инсайты.
Промт:
Я построил boxplot MonthlyCharges по Churn. Опиши, что видно на графике:
- медианы групп
- разброс
- выбросы
- возможные выводы для бизнеса
Предложи, какие ещё графики построить, чтобы подтвердить гипотезу.
Пример: если медиана у ушедших выше, это сигнал, что дорогие тарифы провоцируют отток.
Совет: всегда смотрите на контекст — возможно, дорогие клиенты просто более требовательны.
Что дальше
Эти 15 промтов — не замена аналитику, а ускоритель рутины. Они помогают быстрее пройти EDA, чистку, feature engineering и интерпретацию, освобождая время для более сложных задач: выбора моделей, настройки гиперпараметров, общения с бизнесом. Главное — проверять каждый сгенерированный код на своих данных и не слепо доверять выводам LLM.
Если вы учитесь на asibiont.com, попробуйте применить эти промты в практических заданиях: AI-тьютор проверит ваш код и подскажет, где можно улучшить решение. А если вы уже работаете в команде — поделитесь подборкой с коллегами: возможно, она сэкономит им не одну неделю.
Comments