Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Месяц 2 — Сборник упражнений

🟢 Easy

Алгоритмы

  1. load_iris(), load_wine(), load_breast_cancer() — обучите по 3 разных модели для каждого и сравните accuracy.
  2. LogisticRegression, KNN, SVM, DecisionTree, RandomForest — оцените все через cross_val_score.
  3. Определите, нужен ли feature scaling для каждой модели (сравните с Pipeline + StandardScaler и без).

Метрики

  1. Вычислите confusion matrix вручную и проверьте через sklearn.metrics.confusion_matrix.
  2. Вычислите Precision, Recall, F1 вручную по формулам.
  3. Покажите разницу между predict и predict_proba, измените threshold и посмотрите изменения accuracy.

Pipeline

  1. Создайте Pipeline([scaler, model]) и выполните fit_predict.
  2. Обработайте numerical и categorical столбцы отдельно через ColumnTransformer.
  3. Сохраните pipeline через joblib.dump и загрузите заново.

🟡 Medium

Real datasets

  1. Titanic: получите 80%+ accuracy через Pipeline + Random Forest.
  2. House Prices: сравните Lasso + Ridge, получите R² 0.85+.
  3. Telco Churn: сражайтесь с imbalanced data, получите F1 0.6+.
  4. Wine Quality: сравните подходы regression vs classification.

Инженерия признаков

  1. NYC Taxi: создайте 10+ features из datetime и посмотрите улучшение accuracy RF.
  2. Text feature engineering: обогатите один categorical столбец через n-gram.
  3. Polynomial features: эксперимент с degree=2, понаблюдайте за overfitting.

Hyperparameter Tuning

  1. Через GridSearchCV 3 параметра XGBoost — сколько времени на 100 trial?
  2. Через RandomizedSearchCV то же самое — разница во времени и качестве?
  3. Через Optuna 100 trial — самый лучший и самый быстрый!

Ensembles

  1. RF vs XGBoost vs LightGBM vs CatBoost — сравните на одинаковом dataset (таблица).
  2. Voting Classifier (3 модели) — лучше ли он отдельных результатов каждой?
  3. Stacking — создайте base + meta.

🔴 Hard (Production)

1. Churn Prediction Service

Полные требования:

  • Django REST Framework или FastAPI
  • Таблица customer в PostgreSQL (50+ features)
  • /api/v1/predict/churn/{customer_id} — получение features из DB + prediction
  • /api/v1/predict/churn/batch — CSV upload + Celery background
  • /api/v1/feedback — возврат реального результата (для улучшения модели)
  • /api/v1/metrics — формат Prometheus
  • Docker + docker-compose
  • GitHub Actions CI/CD

2. AutoML Service

После загрузки dataset автоматически:

  • EDA report (ydata-profiling)
  • Сравнение 5+ алгоритмов
  • Сохранение best model
  • Prediction endpoint автоматически готов

Источник вдохновения: H2O AutoML, PyCaret.

3. A/B Testing Backend

  • Serve двух моделей (v1 и v2)
  • Random traffic split (60/40 или configurable)
  • Логирование каждого prediction в Postgres
  • Автоматическое определение, какая модель лучше, через статистический тест
  • Slack notification: “Model v2 wins!”

4. Real-time Anomaly Detection

  • Kafka consumer (transaction stream)
  • Online anomaly detection через IsolationForest или DBSCAN
  • Отправка аномалий в отдельный Kafka topic
  • Grafana dashboard

Мини-проекты

Мини-проект 1: Spam Classifier

  • SMS Spam dataset (UCI)
  • TF-IDF + Logistic Regression / Naive Bayes
  • FastAPI endpoint
  • Streamlit UI

Мини-проект 2: Stock Price Direction

  • Stock data через yfinance
  • Feature engineering на технических индикаторах (RSI, MACD)
  • Up/Down classification
  • Backtesting

Мини-проект 3: Recommendation System (Collaborative Filtering)

  • MovieLens dataset
  • Библиотека Surprise
  • User-based и item-based
  • API: /recommend/{user_id}

Мини-проект 4: Time Series Forecasting

  • Prophet или ARIMA
  • Прогноз daily sales
  • 30-дневный prediction

Quiz

ML Fundamentals

  1. Разница между Supervised и Unsupervised?
  2. Объясните Bias-Variance tradeoff на примере.
  3. Как вы определяете overfitting?
  4. Зачем нужна Cross-validation?
  5. Почему при разделении Train/Val/Test нужны именно 3 части?

Algorithms

  1. Почему в названии Logistic Regression есть слово “regression”? (Hint: log-odds)
  2. На что влияет параметр k в KNN?
  3. Разница между Random Forest и Gradient Boosting (parallel vs sequential)?
  4. Основная разница между XGBoost и LightGBM?
  5. Почему categorical handling у CatBoost лучше?

Метрики

  1. Почему accuracy — плохая метрика для imbalanced classification?
  2. Когда ROC-AUC и PR-AUC расходятся?
  3. Разница между F1 и F-beta?
  4. Когда в regression использовать MAE, а когда MSE?
  5. Может ли R² быть отрицательным? Почему?

Production

  1. Разница между joblib и pickle?
  2. Как разместить ML-модель в Docker?
  3. Что такое model drift и как его обнаружить? (preview, месяц 6)
  4. Почему полезен ONNX?
  5. Что такое statistical significance в A/B testing?

✅ Чек-лист конца месяца 2

  • Попробовал большинство алгоритмов классического ML
  • Освоил Scikit-learn Pipeline и ColumnTransformer
  • Работал с XGBoost/LightGBM (минимум 1 competition)
  • Сделал hyperparameter tuning через Optuna
  • Интерпретировал модель через SHAP или Feature Importance
  • Вывод ML-модели в production через FastAPI
  • Сделал первый Kaggle submission (top 30%)
  • Capstone-проект на GitHub
  • Пост в LinkedIn (проект + сертификат)

Поздравляю! Переходим к Месяц 3 — Deep Learning.