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 — Классический ML (Scikit-learn)

🎯 Цель этого месяца

К концу месяца вы сможете:

  • Превращать реальную бизнес-задачу в ML-задачу (regression / classification / clustering)
  • Строить полный ML pipeline с Scikit-learn
  • Оценивать модель и понимать типы ошибок
  • Создавать production-модели с XGBoost/LightGBM
  • Участвовать в Kaggle competition и входить в top 30%

Распределение по неделям

НеделяТемаВремя
Неделя 1Основы ML + Regression10-12 часов
Неделя 2Classification + Clustering10-12 часов
Неделя 3Feature Engineering + Evaluation8-10 часов
Неделя 4Ensembles (XGBoost/LightGBM) + Kaggle12-15 часов

Порядок глав

  1. Введение в ML — термины, процесс, training/test split
  2. Regression — предсказание непрерывного значения
  3. Classification — разделение по классам
  4. Clustering — unsupervised группировка
  5. Feature Engineering — подготовка и создание признаков
  6. Model Evaluation — метрики и валидация
  7. Ensemble Methods — Random Forest, XGBoost, LightGBM
  8. Упражнения — дополнительные упражнения и задания 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. Когда вы пишете первую модель, уже думайте о:

  1. Reproducibilityrandom_state=42 везде
  2. Сохранениеjoblib.dump(model, 'model.pkl')
  3. Versioningmodel_v1.pkl, model_v2.pkl
  4. Schema — валидация input/output через Pydantic
  5. Logging — timestamp и input для каждого предсказания

Эти темы глубже разбираются в месяце 6 (MLOps), но начинайте с первого дня.

Начать

Начните с раздела Введение в ML.