10 промтов для машинного обучения: от препроцессинга до XGBoost и CatBoost
Машинное обучение (ML) перестало быть уделом только исследователей. Сегодня инженеры и аналитики используют библиотеки вроде Scikit-learn, XGBoost и CatBoost для решения реальных бизнес-задач: прогнозирование спроса, сегментация клиентов, детекция аномалий. Но даже опытному специалисту часто приходится тратить часы на подбор гиперпараметров или отладку пайплайнов. Хорошая новость: современные языковые модели (LLM) могут выступать в роли «ML-ассистента», если правильно составить промт. В этой подборке — 10 готовых промтов, которые покрывают весь цикл работы: от очистки данных до интерпретации моделей. Каждый промт выверен на практике и снабжён примером использования.
Промт 1: Разведочный анализ данных (EDA) с Scikit-learn
Для чего: Быстро получить общее представление о датасете перед моделированием: распределения, пропуски, корреляции.
Промт:
Ты — опытный ML-инженер. Проведи разведочный анализ данных для датасета, который представлен в виде pandas DataFrame. У меня есть колонки: age, income, churn. Напиши код на Python с использованием Scikit-learn и pandas, который выведет:
1. Количество пропусков в каждой колонке.
2. Распределение целевой переменной churn (доли классов).
3. Матрицу корреляции числовых признаков.
4. Гистограммы для age и income.
Объясни каждый шаг и укажи, какие выводы можно сделать из этих данных для дальнейшего построения модели.
Пример использования: Вы работаете с телеком-датасетом и хотите понять, какие признаки влияют на отток клиентов. Скопируйте промт, замените названия колонок на свои, и получите готовый скрипт для EDA.
Промт 2: Препроцессинг категориальных и числовых признаков
Для чего: Собрать корректный пайплайн обработки данных с использованием ColumnTransformer и Pipeline из Scikit-learn.
Промт:
Напиши код на Python для создания пайплайна предобработки данных с помощью Scikit-learn. У меня есть смесь числовых и категориальных признаков. Для числовых используй StandardScaler, для категориальных — OneHotEncoder. Создай ColumnTransformer, который применяет эти трансформации к соответствующим колонкам. Затем добавь в Pipeline модель LogisticRegression. Покажи пример обучения и оценки на кросс-валидации. Прокомментируй, зачем нужен каждый шаг.
Пример: В датасете о сотрудниках есть категориальный признак отдел (отдел продаж, IT, HR) и числовой — зарплата. Промт поможет создать единый пайплайн, который не даст утечки данных при масштабировании.
Промт 3: Подбор гиперпараметров с GridSearchCV
Для чего: Автоматически перебрать комбинации гиперпараметров и выбрать лучшую модель.
Промт:
Дай пример подбора гиперпараметров для RandomForestClassifier с помощью GridSearchCV из Scikit-learn. Используй следующие параметры: n_estimators (от 50 до 200 с шагом 50), max_depth (от 3 до 7), min_samples_split (2 и 5). Обучи модель на синтетических данных, сгенерируй их через make_classification. Выведи лучшие параметры и точность на тестовой выборке. Объясни, как интерпретировать результаты.
Пример: Вы решаете задачу бинарной классификации и не знаете, какие гиперпараметры выбрать. GridSearchCV переберёт 12 комбинаций за вас.
Промт 4: Обучение XGBoost с ранней остановкой
Для чего: Избежать переобучения при бустинге и сократить время обучения.
Промт:
Напиши код на Python для обучения XGBoost-классификатора с использованием early_stopping_rounds. Используй матрицу DMatrix, задай параметры: learning_rate=0.1, max_depth=5. Раздели данные на train/valid/test. Покажи, как получить предсказание вероятностей и посчитать метрику ROC-AUC. Также добавь важность признаков и выведи топ-5. Поясни, почему ранняя остановка помогает бороться с переобучением.
Пример: В соревновании на Kaggle вы используете XGBoost для предсказания кликов. Ранняя остановка сохраняет лучшую модель на валидационной выборке.
Промт 5: Настройка CatBoost с автоматической обработкой категорий
Для чего: Использовать встроенную поддержку категориальных признаков в CatBoost без ручного кодирования.
Промт:
Покажи пример обучения модели CatBoostClassifier на данных с категориальными признаками, которые передаются как есть, без OneHotEncoder. Укажи список категориальных фичей в параметре cat_features. Используй валидационную выборку и early_stopping. Выведи метрику LogLoss и важность признаков. Объясни, чем CatBoost отличается от XGBoost в плане работы с категориями.
Пример: В задаче предсказания оттока у вас есть признаки «тип контракта» и «регион». CatBoost сам обработает их эффективнее, чем one-hot.
Промт 6: Оценка важности признаков и интерпретация модели
Для чего: Понять, какие признаки сильнее всего влияют на решение модели.
Промт:
Обучи модель XGBoost на данных о ценах на недвижимость (используй make_regression с 10 признаками). После обучения построй график важности признаков (feature_importances_) с помощью matplotlib. Также выведи SHAP-значения для первых 5 объектов тестовой выборки (если установлен shap). Интерпретируй, как модель принимает решения.
Пример: Банку важно объяснить клиенту, почему отказано в кредите. SHAP-значения показывают вклад каждого признака.
Промт 7: Сравнение моделей Scikit-learn, XGBoost и CatBoost
Для чего: Быстро сравнить несколько алгоритмов на одном датасете и выбрать лучший.
Промт:
Напиши код для сравнения трёх моделей: LogisticRegression, XGBClassifier, CatBoostClassifier на синтетическом датасете make_classification (n_samples=1000, n_features=20, random_state=42). Для каждой модели посчитай среднюю точность и ROC-AUC на 5-фолдовой кросс-валидации. Выведи результаты в виде таблицы, отсортированной по ROC-AUC. Добавь краткий комментарий о том, когда какую модель стоит использовать.
Пример: Выбор базовой модели для стартапа: логистическая регрессия быстрая, CatBoost точнее на категориях, XGBoost — хорош для табличных данных.
Промт 8: Обнаружение аномалий с IsolationForest
Для чего: Найти выбросы в данных без размеченных меток.
Промт:
Обучи модель IsolationForest из Scikit-learn на данных с аномалиями. Сгенерируй синтетический датасет с помощью make_blobs, добавь несколько случайных выбросов. Обучи модель с contamination=0.05. Выведи количество обнаруженных аномалий и визуализируй результат на графике рассеяния, где нормальные точки — синие, аномалии — красные. Объясни принцип работы алгоритма.
Пример: Поиск подозрительных транзакций в банке. IsolationForest выявляет редкие паттерны.
Промт 9: Скрипт для сохранения и загрузки модели
Для чего: Чтобы не переобучать модель каждый раз, а сохранять её на диск.
Промт:
Напиши пример сохранения и загрузки модели XGBoost с помощью joblib. Обучи простую модель на синтетических данных, сохрани в файл 'model.joblib', затем загрузи и сделай предсказание. Объясни, какие требования к версиям библиотек при сохранении и загрузке модели.
Пример: Вы обучили модель в Jupyter notebook и хотите передать её в продакшн. Сохранение и загрузка — стандартный шаг.
Промт 10: Оптимизация гиперпараметров с Optuna (XGBoost + CatBoost)
Для чего: Современный способ подбора гиперпараметров с использованием байесовской оптимизации.
Промт:
Используя библиотеку Optuna, проведи оптимизацию гиперпараметров для XGBoost и CatBoost. Задай пространство поиска: learning_rate от 0.01 до 0.3, max_depth от 3 до 10, subsample от 0.6 до 1.0. Для каждого алгоритма создай objective-функцию, которая возвращает ROC-AUC на кросс-валидации. Выполни 20 trials и выведи лучшие параметры. Поясни, почему Optuna работает эффективнее GridSearch.
Пример: В соревнованиях Optuna — стандартный инструмент для получения топ-результатов. Он экономит часы ручного перебора.
Заключение
Эти 10 промтов покрывают основные потребности ML-инженера: от первичного анализа до финальной настройки. Вставляя их в свою любимую LLM, вы получаете рабочий код, который можно сразу адаптировать под свою задачу. Помните, что промты — это не волшебная кнопка, а ускоритель: важно проверять выводы модели и держать в голове business-контекст. Сохраните подборку в закладки и используйте как шпаргалку в следующем проекте. А если вы хотите научиться писать такие промты сами — начните с простого: задавайте модели чёткие рамки, просите объяснять решения и уточняйте входные данные.
Ссылки на источники: документация Scikit-learn, документация XGBoost, документация CatBoost, Optuna.
Комментарии