Введение в Machine Learning для аналитика

Зачем аналитику ML

ML — инструмент для предсказаний и автоматизации. Для аналитика полезен:

  • Churn prediction — какие пользователи уйдут.
  • Lead scoring — какие лиды конвертируются.
  • Recommendations — что порекомендовать.
  • Anomaly detection — выбросы / фрод.
  • Forecasting — прогнозы выручки / DAU.

Не нужно быть Data Scientist — достаточно понимать концепции и базовые модели.

Два типа обучения

Supervised (с учителем)

У вас есть target (правильный ответ). Модель учится предсказывать.

  • Classification — категориальный target (churn / not churn).
  • Regression — непрерывный (LTV, revenue).

Unsupervised (без учителя)

Target нет. Модель ищет структуру в данных.

  • Clustering — группы пользователей.
  • Dimensionality reduction — сжатие данных (PCA).
  • Anomaly detection — выбросы.

Классические алгоритмы

Классификация

  • Logistic Regression — простая, интерпретируема.
  • Decision Tree — понятно, но склонна к переобучению.
  • Random Forest — ансамбль деревьев, сильна из коробки.
  • Gradient Boosting (XGBoost, LightGBM, CatBoost) — state-of-art.
  • Neural Networks — для сложных сигналов.

Регрессия

  • Linear Regression — базовая.
  • Ridge / Lasso — с регуляризацией.
  • Random Forest Regressor — ансамбль.
  • XGBoost Regressor — современный стандарт.

Clustering

  • K-Means.
  • DBSCAN.
  • Hierarchical.

Pipeline ML-проекта

1. Understanding

  • Какая задача?
  • Какая метрика успеха?
  • Какие данные нужны?

2. Data collection

  • SQL-запросы к DWH.
  • Объединение источников.

3. EDA (Exploratory Data Analysis)

  • Распределения.
  • Пропуски.
  • Выбросы.
  • Корреляции.

4. Feature engineering

5. Train-test split

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

6. Baseline

Простая модель. Например, predict_majority_class.

7. Модель

from sklearn.ensemble import GradientBoostingClassifier

model = GradientBoostingClassifier()
model.fit(X_train, y_train)

8. Оценка

from sklearn.metrics import accuracy_score, roc_auc_score

y_pred = model.predict(X_test)
y_proba = model.predict_proba(X_test)[:, 1]

print('Accuracy:', accuracy_score(y_test, y_pred))
print('AUC:', roc_auc_score(y_test, y_proba))

9. Feature importance

import pandas as pd
pd.Series(model.feature_importances_, index=X.columns).sort_values(ascending=False).head(10)

10. Deployment

  • Inference endpoint / batch prediction.
  • Monitoring (drift, performance).

Больше таких примеров с разборами — в Telegram-тренажёре. Короткие сессии, прогресс по темам, объяснения после каждого ответа.

Ключевые метрики

Классификация

  • Accuracy — доля правильных (но плохо при несбалансированных классах).
  • Precision — из предсказанных positive — сколько правда positive.
  • Recall — из всех positive — сколько поймали.
  • F1 — гармоника precision и recall.
  • ROC-AUC — universal для бинарных.

Регрессия

  • MAE — Mean Absolute Error.
  • MSE / RMSE — Root Mean Squared Error.
  • — доля объяснённой вариации.

Train, test, validation

  • Train (60-80%) — для обучения.
  • Validation (10-20%) — для подбора гиперпараметров.
  • Test (10-20%) — финальная оценка.

Или k-fold cross-validation — надёжнее на маленьких данных.

Overfitting и underfitting

  • Overfitting — модель запомнила train, плохо на test. Симптом: train accuracy 99%, test 70%. Решение: больше данных, регуляризация, меньше фич.

  • Underfitting — модель слишком простая. Симптом: train и test accuracy обе 65%. Решение: более сложная модель, больше фич.

Feature engineering — главный вклад

80% успеха ML — правильные features, не алгоритм.

Примеры полезных features для churn:

  • days_since_last_event
  • sessions_count_30d
  • total_spent_ytd
  • tenure_months
  • engagement_score

Инструменты

  • scikit-learn — базовые алгоритмы.
  • XGBoost / LightGBM / CatBoost — boosting.
  • pandas / numpy — данные.
  • matplotlib / seaborn — визуализация.
  • MLflow — tracking моделей.
  • SHAP — интерпретация.

Если готовишься к собесу — бот @kariernik_bot закрывает 80% технических вопросов. SQL, Python, A/B, продуктовые метрики — всё в одном месте.

Аналитик vs Data Scientist

Аналитик делает ML, когда

  • Простая задача.
  • Нужна быстрая прикидка.
  • Нет DS в команде.

DS делает ML, когда

  • Сложная задача.
  • Нужна production модель.
  • Много данных, complex features.

Аналитику полезно знать ML как инструмент, но глубина — не обязательна.

Типичные ошибки

1. Data leakage

Features из «будущего». Модель на train 99%, в продакшне 60%.

2. Imbalanced classes

1% positive → модель предсказывает всё 0, 99% accuracy. Используйте AUC, class_weight='balanced'.

3. Overfitting

Слишком сложная модель на маленьких данных. Регуляризируйте.

4. No baseline

«Наш ML даёт 85% accuracy!» — но случайный предсказатель даёт 80%. Baseline обязателен.

5. Игнор интерпретации

Аналитик должен объяснить модель бизнесу. Используйте SHAP, feature_importance.

Читайте также

FAQ

Нужно ли аналитику знать ML?

Базово — да. Глубоко — нет (это DS).

С чего начать?

sklearn + задачи с Kaggle. Logistic regression → Random Forest → XGBoost.

Сколько учить?

Базы за 2–3 месяца. Профессиональный уровень — 1+ год.

Нужна ли математика?

Для применения — нет. Для понимания — базово. Для создания новых алгоритмов — глубоко.