Online learning на собеседовании Data Scientist
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Зачем разбирать на собесе
Online learning важен для real-time ML. На собесе DS: «отличие от batch», «когда применять».
Что такое online learning
Модель обновляется по одному (или нескольким) sample за раз, не на full dataset.
Batch learning: train на full dataset → freeze model → use for predictions.
Online learning: continuous learning — каждый new sample обновляет model.
# online style
for x, y in stream:
pred = model.predict(x)
model.update(x, y) # learn from this sampleАлгоритмы
SGD (Stochastic Gradient Descent). На каждом sample — gradient step.
from sklearn.linear_model import SGDClassifier
clf = SGDClassifier()
for x_batch, y_batch in stream:
clf.partial_fit(x_batch, y_batch, classes=[0, 1])Vowpal Wabbit. Specialized для online learning. Очень быстрый.
FTRL (Follow The Regularized Leader). Sparse online learning. Used at Google.
Online k-means. Streaming clustering.
Bandits / contextual bandits. Уже online by design.
Применения
Click-through rate. Continuous обучение на user clicks.
Recsys. Update preferences на каждое событие.
Anomaly detection. Update normal distribution on new data.
Fraud detection. Patterns меняются — model тоже.
IoT. Sensor data — не помещается в memory целиком.
Concept drift adaptation
Online learning natively справляется с дрейфом — постоянно учится.
Forgetting. Если pattern меняется — старые данные не должны dominate. Решения:
- Sliding window. Тренируем на последних N samples.
- Exponential decay. Старые samples imeют меньший вес.
- Ensemble of online learners. Разные «возрасты» — combine.
Drift detection. Monitor accuracy / loss на recent. Если падает — reset / retrain.
Tools
River (бывший Creme). Python библиотека для online ML.
from river import linear_model
model = linear_model.LogisticRegression()
for x, y in stream:
model = model.learn_one(x, y)
pred = model.predict_one(x)Vowpal Wabbit. CLI tool / Python wrapper.
Spark Streaming + MLlib. Streaming context.
TensorFlow / PyTorch. Frameworks support online updates через partial training.
Связанные темы
- Cross-validation на собесе DS
- Data drift на собесе DS
- Multi-armed bandit для DS
- Active learning на собесе DS
- Подготовка к собесу Data Scientist
FAQ
Online vs incremental?
Часто синонимы. Иногда incremental — periodic mini-batch updates, online — per-sample.
Это официальная информация?
Нет. Статья основана на документации river / Vowpal Wabbit.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.