Машинное обучение — что это и зачем аналитику данных
Что такое машинное обучение
Машинное обучение (Machine Learning, ML) — подраздел искусственного интеллекта, в котором компьютер находит закономерности в данных без явного программирования правил. Вместо того чтобы писать if revenue > 1000 then good_client, вы даёте модели исторические данные с примерами, а она сама выводит правила.
Классическое определение: «Программа обучается на опыте E относительно задачи T и метрики P, если её производительность по P на задаче T улучшается с ростом E» (Том Митчелл). Проще: чем больше данных — тем точнее предсказания.
ML — часть Data Science, наряду со статистикой, визуализацией и доменной экспертизой.
Типы машинного обучения
Обучение с учителем (Supervised Learning)
Модель получает данные с правильными ответами (метками). Примеры: «этот клиент ушёл», «этот остался». На основе пар «вход → ответ» модель учится предсказывать ответ для новых данных.
Два типа задач:
- Классификация — предсказание категории. Уйдёт клиент или нет (бинарная), тип обращения в поддержку (многоклассовая).
- Регрессия — предсказание числа. Выручка в следующем месяце, время до покупки, LTV пользователя.
Обучение без учителя (Unsupervised Learning)
Модель получает данные без меток и ищет скрытую структуру. Типичные задачи: кластеризация пользователей по поведению (RFM-сегменты), снижение размерности для визуализации, поиск аномалий.
Обучение с подкреплением (Reinforcement Learning)
Агент взаимодействует со средой, получает награды и штрафы, учится максимизировать суммарную награду. Используется в робототехнике, играх, рекомендательных системах. Аналитикам встречается редко, но знать о нём стоит.
Алгоритмы, которые должен знать аналитик
Аналитик не строит модели в продакшене — но должен понимать, что за алгоритм используется и почему.
- Линейная регрессия — предсказывает числовое значение, находя линейную зависимость между признаками и целевой переменной. Самый базовый метод.
- Логистическая регрессия — несмотря на название, решает задачу классификации. Предсказывает вероятность принадлежности к классу через sigmoid-функцию.
- Деревья решений — серия условий «если–то» в виде дерева. Интерпретируемы: можно объяснить, почему модель приняла решение. Градиентный бустинг (XGBoost, LightGBM) строит ансамбль таких деревьев и часто даёт лучшее качество на табличных данных.
- k-Means — алгоритм кластеризации. Делит объекты на k групп так, чтобы объекты внутри кластера были похожи. Используется для сегментации пользователей.
Практические примеры
Прогноз оттока (Churn Prediction). Классификация: по истории активности, покупок и обращений в поддержку модель предсказывает вероятность, что пользователь уйдёт в ближайшие 30 дней. Маркетинг таргетирует на эту группу удерживающие кампании.
Рекомендательные системы. Netflix рекомендует фильмы, Ozon — товары. Под капотом — коллаборативная фильтрация (похожие пользователи смотрят похожее) или контентные модели (похожие характеристики товаров).
Детекция фрода. Классификация транзакций на легитимные и подозрительные. Модель учится на исторических примерах мошенничества и флагает аномальные паттерны в реальном времени.
Прогноз спроса (Demand Forecasting). Регрессия: предсказание объёма продаж на следующую неделю для каждого SKU. Учитывает сезонность, промоакции, день недели.
Переобучение и недообучение
Переобучение (overfitting) — модель запомнила обучающие данные, включая шум, и плохо работает на новых. Признак: отличные метрики на train, слабые на test. Решения: больше данных, регуляризация, упрощение модели.
Недообучение (underfitting) — модель слишком простая и не ловит закономерности. Плохие метрики и на train, и на test. Решения: усложнить модель, добавить признаки.
Train/test split
Чтобы оценить модель честно, данные делят на две части:
- Train (обучающая выборка) — на ней модель учится, обычно 70–80% данных.
- Test (тестовая выборка) — на ней проверяем качество, 20–30%. Модель эти данные не видела.
Если тестировать модель на тех же данных, на которых обучали, — вы измеряете способность запоминать, а не обобщать. Train/test split — минимальный стандарт валидации.
Зачем ML аналитику данных
Аналитик данных обычно не деплоит модели в продакшен — этим занимается ML-инженер. Но аналитик:
- Готовит данные и признаки (feature engineering). Качество признаков определяет качество модели больше, чем выбор алгоритма. Аналитик, который знает домен, создаёт лучшие фичи.
- Оценивает результаты. Понимает, что AUC = 0.95 — не всегда хорошо (дисбаланс классов), и что precision/recall важнее accuracy.
- Интерпретирует модель для бизнеса. Переводит feature importance в бизнес-инсайты: «основной фактор оттока — отсутствие активности 7+ дней».
- Ставит задачу. Формулирует, какую метрику оптимизировать, какие данные использовать, что считать целевой переменной.
Python-библиотеки для ML
- scikit-learn (sklearn) — стандарт для классического ML. Линейные модели, деревья, кластеризация, метрики, preprocessing. Достаточно для 80% задач аналитика.
- XGBoost / LightGBM — градиентный бустинг. Лучшее качество на табличных данных, используется в большинстве продакшен-решений и на Kaggle.
- pandas — подготовка и трансформация данных перед подачей в модель.
Вопросы с собеседований
Чем supervised отличается от unsupervised learning? В supervised модель обучается на размеченных данных (есть правильные ответы), в unsupervised — ищет структуру в неразмеченных данных. Пример supervised: прогноз оттока. Пример unsupervised: кластеризация клиентов.
Чем классификация отличается от регрессии? Классификация предсказывает категорию (уйдёт / не уйдёт), регрессия — числовое значение (выручка, LTV). Метрики разные: accuracy/precision/recall для классификации, MAE/RMSE/R² для регрессии.
Что такое переобучение и как с ним бороться? Модель запомнила тренировочные данные и плохо обобщает. Методы: train/test split, кросс-валидация, регуляризация, ранняя остановка, увеличение объёма данных.
Зачем делить данные на train и test? Чтобы оценить качество модели на данных, которые она не видела. Без этого мы не знаем, обобщает модель или просто запоминает.
Что такое feature engineering? Создание и трансформация признаков из сырых данных для улучшения качества модели. Пример: из даты регистрации и текущей даты сделать признак «количество дней с момента регистрации».
FAQ
Нужно ли аналитику уметь строить ML-модели? Не обязательно, но крайне полезно. Базовый уровень — запустить sklearn-модель в Jupyter, оценить метрики, объяснить результат. Этого достаточно для большинства позиций аналитика.
С чего начать изучение ML? С линейной регрессии и логистической регрессии. Это фундамент, на котором строится понимание более сложных методов. Затем — деревья решений и градиентный бустинг.
Корреляция и причинность — при чём тут ML? ML-модели находят корреляции, но не доказывают причинно-следственные связи. Если модель предсказывает отток по количеству обращений в поддержку — это не значит, что обращения вызывают отток. Для причинности нужен A/B-тест или каузальный анализ.
Чем ML отличается от классической статистики? Статистика фокусируется на интерпретации и проверке гипотез (p-values, доверительные интервалы). ML — на качестве предсказаний. На практике они дополняют друг друга.
Потренируйте вопросы по ML и статистике на реальных задачах — откройте тренажёр. 1500+ вопросов, которые спрашивают на собеседованиях аналитика. Бесплатно. А ещё посмотрите примеры вопросов.