Месяц 2 — Сборник упражнений
🟢 Easy
Алгоритмы
load_iris(),load_wine(),load_breast_cancer()— обучите по 3 разных модели для каждого и сравните accuracy.LogisticRegression,KNN,SVM,DecisionTree,RandomForest— оцените все черезcross_val_score.- Определите, нужен ли feature scaling для каждой модели (сравните с Pipeline + StandardScaler и без).
Метрики
- Вычислите confusion matrix вручную и проверьте через
sklearn.metrics.confusion_matrix. - Вычислите Precision, Recall, F1 вручную по формулам.
- Покажите разницу между
predictиpredict_proba, измените threshold и посмотрите изменения accuracy.
Pipeline
- Создайте
Pipeline([scaler, model])и выполнитеfit_predict. - Обработайте numerical и categorical столбцы отдельно через
ColumnTransformer. - Сохраните pipeline через
joblib.dumpи загрузите заново.
🟡 Medium
Real datasets
- Titanic: получите 80%+ accuracy через Pipeline + Random Forest.
- House Prices: сравните Lasso + Ridge, получите R² 0.85+.
- Telco Churn: сражайтесь с imbalanced data, получите F1 0.6+.
- Wine Quality: сравните подходы regression vs classification.
Инженерия признаков
- NYC Taxi: создайте 10+ features из datetime и посмотрите улучшение accuracy RF.
- Text feature engineering: обогатите один categorical столбец через
n-gram. - Polynomial features: эксперимент с degree=2, понаблюдайте за overfitting.
Hyperparameter Tuning
- Через
GridSearchCV3 параметра XGBoost — сколько времени на 100 trial? - Через
RandomizedSearchCVто же самое — разница во времени и качестве? - Через
Optuna100 trial — самый лучший и самый быстрый!
Ensembles
- RF vs XGBoost vs LightGBM vs CatBoost — сравните на одинаковом dataset (таблица).
- Voting Classifier (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
- Разница между Supervised и Unsupervised?
- Объясните Bias-Variance tradeoff на примере.
- Как вы определяете overfitting?
- Зачем нужна Cross-validation?
- Почему при разделении Train/Val/Test нужны именно 3 части?
Algorithms
- Почему в названии Logistic Regression есть слово “regression”? (Hint: log-odds)
- На что влияет параметр
kв KNN? - Разница между Random Forest и Gradient Boosting (parallel vs sequential)?
- Основная разница между XGBoost и LightGBM?
- Почему categorical handling у CatBoost лучше?
Метрики
- Почему accuracy — плохая метрика для imbalanced classification?
- Когда ROC-AUC и PR-AUC расходятся?
- Разница между F1 и F-beta?
- Когда в regression использовать MAE, а когда MSE?
- Может ли R² быть отрицательным? Почему?
Production
- Разница между
joblibиpickle? - Как разместить ML-модель в Docker?
- Что такое model drift и как его обнаружить? (preview, месяц 6)
- Почему полезен ONNX?
- Что такое 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.