Месяц 2 — Классический ML (Scikit-learn)
🎯 Цель этого месяца
К концу месяца вы сможете:
- Превращать реальную бизнес-задачу в ML-задачу (regression / classification / clustering)
- Строить полный ML pipeline с Scikit-learn
- Оценивать модель и понимать типы ошибок
- Создавать production-модели с XGBoost/LightGBM
- Участвовать в Kaggle competition и входить в top 30%
Распределение по неделям
| Неделя | Тема | Время |
|---|---|---|
| Неделя 1 | Основы ML + Regression | 10-12 часов |
| Неделя 2 | Classification + Clustering | 10-12 часов |
| Неделя 3 | Feature Engineering + Evaluation | 8-10 часов |
| Неделя 4 | Ensembles (XGBoost/LightGBM) + Kaggle | 12-15 часов |
Порядок глав
- Введение в ML — термины, процесс, training/test split
- Regression — предсказание непрерывного значения
- Classification — разделение по классам
- Clustering — unsupervised группировка
- Feature Engineering — подготовка и создание признаков
- Model Evaluation — метрики и валидация
- Ensemble Methods — Random Forest, XGBoost, LightGBM
- Упражнения — дополнительные упражнения и задания Kaggle
Что вы сможете делать в конце месяца?
- Решать 80% задач на табличных данных (regression, classification, clustering)
- Писать reproducible код с использованием Scikit-learn
Pipeline - Сохранять модель через
joblibи запускать её в FastAPI - Попасть в top 30% Kaggle с XGBoost/LightGBM
- Объяснять бизнесу ROI ML-модели
Совет для Backend Dev
Как и при написании REST API в backend, в ML есть паттерн fit() → predict():
# Паттерн backend
@app.post("/users")
def create_user(data: UserIn):
user = User(**data.dict())
db.add(user)
return user
# Паттерн ML
model = LogisticRegression()
model.fit(X_train, y_train) # "train"
predictions = model.predict(X_test) # "predict"
Этот паттерн одинаков для всех моделей sklearn — если вы знаете LinearRegression, то знаете и RandomForest.
MLOps integration (с самого начала)
Преимущество backend dev — production thinking. Когда вы пишете первую модель, уже думайте о:
- Reproducibility —
random_state=42везде - Сохранение —
joblib.dump(model, 'model.pkl') - Versioning —
model_v1.pkl,model_v2.pkl - Schema — валидация input/output через Pydantic
- Logging — timestamp и input для каждого предсказания
Эти темы глубже разбираются в месяце 6 (MLOps), но начинайте с первого дня.
Начать
Начните с раздела Введение в ML.