RecallDeck
Направление

Подготовка к собеседованию — Дата-сайентист

Колода из 291+ карточек с вопросами для собеседования по направлению «Дата-сайентист» — по темам и уровню сложности, с возвратом ровно перед тем, как вы забудете. Посмотрите несколько карточек ниже, затем войдите, чтобы учить всё направление по расписанию в стиле Anki (SM-2).

291 карточка17 тем

Бесплатно · вход через GitHub · ваш прогресс остаётся с вами.

Что внутри

Все темы направления, сгруппированные так, как вы будете их учить.

Основы ML и валидация

10 карточек
Основы ML

Классический ML и ансамбли

12 карточек
Классический ML

Метрики и дисбаланс классов

11 карточек
Метрики

Фичи, подготовка данных и утечки

10 карточек
Фичи и утечки

Глубокое обучение

12 карточек
Глубокое обучение

NLP и LLM

12 карточек
NLP и LLM

ML-системный дизайн

8 карточек
ML system design

MLOps и модель в проде

10 карточек
MLOps и прод

Python

130 карточек
Ядро языкаМодель данных и внутренностиКонкурентность и asyncStdlib, типизация и тесты

SQL для аналитики

11 карточек
SQL для аналитики

Статистика и вероятность

11 карточек
Статистика

A/B-тесты и эксперименты

9 карточек
Эксперименты

Python для аналитиков (pandas и matplotlib)

10 карточек
Python для аналитиков

Поведенческое интервью

35 карточек
Поведенческое интервью

Примеры вопросов

Несколько карточек из колоды — откройте ответ, затем войдите, чтобы учить весь набор по расписанию.

Что такое переобучение, как его обнаружить и как с ним бороться?

Короткий ответ: Переобучение — модель выучила шум трейна вместо закономерности: на трейне ошибка низкая, на новых данных — высокая. Обнаруживают по разрыву train/validation, лечат регуляризацией, упрощением модели, ранней остановкой и бóльшим объёмом данных.

Подробно:

  1. Обнаружение — сравнить ошибку на трейне и на валидации; learning curves: train-ошибка падает, validation-ошибка стоит или растёт → модель начала запоминать шум.
  2. Лечение — уменьшить ёмкость или добавить сигнала, а не «крутить» метрику.
Обнаружить Исправить
Разрыв метрик train ≈ 0, валидация заметно хуже регуляризация (L1/L2), проще модель
Learning curves кривые расходятся с ростом эпох early stopping
Кросс-валидация нестабильные метрики по фолдам больше данных, аугментация
Сложность модели глубокие деревья, миллионы весов ограничить глубину, срезать фичи

⚠️ Частая ошибка: сказать «кросс-валидация предотвращает переобучение». CV его лишь обнаруживает — честно оценивает качество. Предотвращают регуляризация, упрощение модели и данные.

Как решающее дерево выбирает сплиты и почему глубокие деревья переобучаются?

Короткий ответ: Жадно: в каждом узле перебираются фичи и пороги, выбирается сплит с максимальным снижением impurity (Джини или энтропия; для регрессии — MSE). Без ограничения глубины дерево доводит листья до чистоты — то есть запоминает трейн вместе с шумом.

Подробно:

  1. Критерий сплита — прирост: impurity(родителя) − взвешенная impurity(детей); Джини G = 1 − Σpₖ², энтропия −Σpₖ·log pₖ — на практике почти взаимозаменяемы.
  2. Жадность — каждый узел оптимизируется отдельно; глобально оптимальное дерево — NP-полная задача, поэтому неудачный верхний сплит никогда не пересматривается.
  3. Почему переобучение — модель кусочно-константная: при неограниченной глубине каждый лист ужимается до одного объекта → нулевая ошибка на трейне, высокая дисперсия на тесте.
Ограничение Что делает
max_depth режет число уровней
min_samples_leaf не даёт листу ужаться до 1 объекта
ccp_alpha (прунинг) срезает узлы, не окупающие сложность
Ансамбли RF/бустинг превращают слабость дерева в силу

⚠️ Частая ошибка: считать, что дерево находит «лучшее разбиение» глобально — оно жадное, и это принципиальное ограничение, а не деталь реализации.

Дайте определение precision и recall через матрицу ошибок. Когда какая метрика важнее?

Короткий ответ: Precision (точность) = TP/(TP+FP) — доля настоящих позитивов среди всех, кого модель назвала позитивными. Recall (полнота) = TP/(TP+FN) — доля найденных среди всех реальных позитивов. Recall критичен там, где дорог пропуск (скрининг рака, fraud); precision — там, где дорога ложная тревога (спам-фильтр, блокировка контента).

Подробно:

Факт: 1 Факт: 0
Прогноз: 1 TP FP
Прогноз: 0 FN TN
  1. Precision — читаем строку «прогноз: 1»: сколько из срабатываний модели настоящие. Метрика цены ложной тревоги.
  2. Recall — читаем столбец «факт: 1»: какую долю реальных позитивов мы поймали. Метрика цены пропуска.
  3. Trade-off через порог — понизили порог → ловим больше позитивов (recall растёт), но растут и ложные срабатывания (precision падает). Одна модель — целая кривая пар (P, R), а не одна точка.

⚠️ Частая ошибка: назвать формулы и остановиться. Сильный ответ начинается с вопроса «что дороже — пропустить или ложно сработать», и только из него следует, какая метрика главная.

Каким моделям нужно масштабирование признаков и почему?

Короткий ответ: Скейлинг нужен моделям, которые опираются на расстояния, скалярные произведения или градиентный спуск: kNN, SVM, k-means, PCA, линейные с регуляризацией, нейросети. Деревьям, лесам и бустингу — не нужен: они инвариантны к монотонным преобразованиям.

Подробно:

Модель Скейлинг Почему
kNN, k-means, SVM обязателен расстояния: фича в метрах «задавит» фичу в километрах
PCA обязателен дисперсия: компоненты уйдут в фичу с большим масштабом
Линейные + L1/L2 обязателен штраф на веса зависит от масштаба фич
Нейросети нужен сходимость градиентного спуска
Деревья / RF / бустинг не нужен сплиты по порогам, порядок значений не меняется

И ключевое: скейлер — часть модели. Fit только на train, transform на valid/test — иначе утечка статистик теста в обучение.

⚠️ Частая ошибка: «скейлю всё на всякий случай» до сплита — безобидная привычка превращается в лик; и наоборот, тратить время на скейлинг для XGBoost.

Как работает dropout и что с ним происходит на инференсе?

Короткий ответ: На обучении dropout с вероятностью p зануляет случайные активации: каждый батч тренирует свою «прореженную» подсеть, что мешает ко-адаптации нейронов и работает как ансамбль подсетей. На инференсе dropout выключен; чтобы масштаб активаций совпал, используют inverted dropout — деление на (1−p) ещё на обучении.

Подробно:

  1. Механика — бинарная маска на активации, новая на каждый forward; нейрон не может полагаться на конкретных соседей и учит более робастные признаки.
  2. Интерпретация — обучение экспоненциального числа подсетей с общими весами; инференс ≈ усреднение этого ансамбля.
  3. Inverted dropout — активации делятся на (1−p) при обучении, поэтому на инференсе перевзвешивать ничего не нужно — слой просто отключается.
  4. Где ставить — обычно после полносвязных слоёв; в свёрточных сетях чаще заменяется BatchNorm и аугментациями.
drop = nn.Dropout(p=0.3)
model.train()   # маска активна, деление на (1-p) уже внутри
model.eval()    # dropout выключен: детерминированный инференс

⚠️ Частая ошибка: забыть про разницу train/inference (и про model.eval() в PyTorch): dropout, оставленный включённым на инференсе, даёт шумные предсказания.

Что такое эмбеддинги и что изменилось при переходе от word2vec к контекстным (как в BERT)?

Короткий ответ: Эмбеддинг — плотный вектор, кодирующий смысл токена так, что близкие по смыслу объекты близки в векторном пространстве. Главный сдвиг: word2vec даёт статический вектор — один на слово всегда, а BERT-подобные модели — контекстный: вектор зависит от предложения, и полисемия наконец решена.

Подробно:

  1. word2vec (skip-gram) — учится предсказывать контекст по слову; после обучения это таблица «слово → вектор». «Ключ» от двери и «ключ» в лесу получают один и тот же вектор.
  2. Контекстные эмбеддинги — вектор слова считается трансформером с учётом всего предложения; «ключ» получает разные векторы в разных фразах.
  3. Задачи предобучения различаются — skip-gram/CBOW у word2vec против masked LM у BERT: предсказать замаскированный токен по двустороннему контексту.
word2vec BERT-style
Вектор один на слово (статический) зависит от контекста
Полисемия не различает различает
Предобучение skip-gram / CBOW masked LM
Единица слово сабворд-токен

⚠️ Частая ошибка: пересказать «king − man + woman ≈ queen» и не суметь назвать главный выигрыш контекстных эмбеддингов — решение полисемии.

Готовы закрепить навсегда?

Первая сессия — меньше минуты. Ваше будущее «я» на собеседовании скажет спасибо.

Вопросы об этом направлении

Как готовиться к собеседованию на «Дата-сайентист»?

Учите концепции, которые придётся объяснять, а не только те, что умеете кодить. Направление «Дата-сайентист» в RecallDeck даёт 291+ отобранных вопросов и возвращает каждый по расписанию в стиле Anki (SM-2) ровно перед тем, как вы забудете — чтобы на собеседовании ответы были под рукой.

Какие темы охватывает направление «Дата-сайентист»?

Направление «Дата-сайентист» разбито на ключевые области, которые реально проверяют на таких собеседованиях, — по темам и уровню сложности (Concept, Junior, Middle, Senior). Полный план и примеры вопросов можно посмотреть выше до входа.

Помогает ли интервальное повторение в подготовке к «Дата-сайентист»?

Да. Активно вспоминать ответ и честно себя оценивать — куда прочнее для памяти, чем перечитывать заметки. RecallDeck планирует каждую карту «Дата-сайентист» так, чтобы она вернулась перед моментом забывания: ежедневных повторений становится меньше, а знания держатся.

Направление «Дата-сайентист» бесплатное?

Да — направление «Дата-сайентист» и полный планировщик SM-2 бесплатны, с 20 новыми картами в день. Войдите через GitHub, и прогресс синхронизируется с аккаунтом. RecallDeck Pro ($5/мес или $29/год) поднимает дневной лимит и добавляет блиц-режим.

Другие направления

RecallDeckПодготовка к собеседованию на интервальных повторениях