Подготовка к собеседованию — Дата-сайентист
Колода из 291+ карточек с вопросами для собеседования по направлению «Дата-сайентист» — по темам и уровню сложности, с возвратом ровно перед тем, как вы забудете. Посмотрите несколько карточек ниже, затем войдите, чтобы учить всё направление по расписанию в стиле Anki (SM-2).
Бесплатно · вход через GitHub · ваш прогресс остаётся с вами.
Что внутри
Все темы направления, сгруппированные так, как вы будете их учить.
Основы ML и валидация
10 карточекКлассический ML и ансамбли
12 карточекМетрики и дисбаланс классов
11 карточекФичи, подготовка данных и утечки
10 карточекГлубокое обучение
12 карточекNLP и LLM
12 карточекML-системный дизайн
8 карточекMLOps и модель в проде
10 карточекPython
130 карточекSQL для аналитики
11 карточекСтатистика и вероятность
11 карточекA/B-тесты и эксперименты
9 карточекPython для аналитиков (pandas и matplotlib)
10 карточекПоведенческое интервью
35 карточекПримеры вопросов
Несколько карточек из колоды — откройте ответ, затем войдите, чтобы учить весь набор по расписанию.
Что такое переобучение, как его обнаружить и как с ним бороться?
Что такое переобучение, как его обнаружить и как с ним бороться?
Короткий ответ: Переобучение — модель выучила шум трейна вместо закономерности: на трейне ошибка низкая, на новых данных — высокая. Обнаруживают по разрыву train/validation, лечат регуляризацией, упрощением модели, ранней остановкой и бóльшим объёмом данных.
Подробно:
- Обнаружение — сравнить ошибку на трейне и на валидации; learning curves: train-ошибка падает, validation-ошибка стоит или растёт → модель начала запоминать шум.
- Лечение — уменьшить ёмкость или добавить сигнала, а не «крутить» метрику.
| Обнаружить | Исправить | |
|---|---|---|
| Разрыв метрик | train ≈ 0, валидация заметно хуже | регуляризация (L1/L2), проще модель |
| Learning curves | кривые расходятся с ростом эпох | early stopping |
| Кросс-валидация | нестабильные метрики по фолдам | больше данных, аугментация |
| Сложность модели | глубокие деревья, миллионы весов | ограничить глубину, срезать фичи |
⚠️ Частая ошибка: сказать «кросс-валидация предотвращает переобучение». CV его лишь обнаруживает — честно оценивает качество. Предотвращают регуляризация, упрощение модели и данные.
Как решающее дерево выбирает сплиты и почему глубокие деревья переобучаются?
Как решающее дерево выбирает сплиты и почему глубокие деревья переобучаются?
Короткий ответ: Жадно: в каждом узле перебираются фичи и пороги, выбирается сплит с максимальным снижением impurity (Джини или энтропия; для регрессии — MSE). Без ограничения глубины дерево доводит листья до чистоты — то есть запоминает трейн вместе с шумом.
Подробно:
- Критерий сплита — прирост: impurity(родителя) − взвешенная impurity(детей); Джини G = 1 − Σpₖ², энтропия −Σpₖ·log pₖ — на практике почти взаимозаменяемы.
- Жадность — каждый узел оптимизируется отдельно; глобально оптимальное дерево — NP-полная задача, поэтому неудачный верхний сплит никогда не пересматривается.
- Почему переобучение — модель кусочно-константная: при неограниченной глубине каждый лист ужимается до одного объекта → нулевая ошибка на трейне, высокая дисперсия на тесте.
| Ограничение | Что делает |
|---|---|
| max_depth | режет число уровней |
| min_samples_leaf | не даёт листу ужаться до 1 объекта |
| ccp_alpha (прунинг) | срезает узлы, не окупающие сложность |
| Ансамбли | RF/бустинг превращают слабость дерева в силу |
⚠️ Частая ошибка: считать, что дерево находит «лучшее разбиение» глобально — оно жадное, и это принципиальное ограничение, а не деталь реализации.
Дайте определение precision и recall через матрицу ошибок. Когда какая метрика важнее?
Дайте определение precision и recall через матрицу ошибок. Когда какая метрика важнее?
Короткий ответ: Precision (точность) = TP/(TP+FP) — доля настоящих позитивов среди всех, кого модель назвала позитивными. Recall (полнота) = TP/(TP+FN) — доля найденных среди всех реальных позитивов. Recall критичен там, где дорог пропуск (скрининг рака, fraud); precision — там, где дорога ложная тревога (спам-фильтр, блокировка контента).
Подробно:
| Факт: 1 | Факт: 0 | |
|---|---|---|
| Прогноз: 1 | TP | FP |
| Прогноз: 0 | FN | TN |
- Precision — читаем строку «прогноз: 1»: сколько из срабатываний модели настоящие. Метрика цены ложной тревоги.
- Recall — читаем столбец «факт: 1»: какую долю реальных позитивов мы поймали. Метрика цены пропуска.
- 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 и что с ним происходит на инференсе?
Короткий ответ: На обучении dropout с вероятностью p зануляет случайные активации: каждый батч тренирует свою «прореженную» подсеть, что мешает ко-адаптации нейронов и работает как ансамбль подсетей. На инференсе dropout выключен; чтобы масштаб активаций совпал, используют inverted dropout — деление на (1−p) ещё на обучении.
Подробно:
- Механика — бинарная маска на активации, новая на каждый forward; нейрон не может полагаться на конкретных соседей и учит более робастные признаки.
- Интерпретация — обучение экспоненциального числа подсетей с общими весами; инференс ≈ усреднение этого ансамбля.
- Inverted dropout — активации делятся на (1−p) при обучении, поэтому на инференсе перевзвешивать ничего не нужно — слой просто отключается.
- Где ставить — обычно после полносвязных слоёв; в свёрточных сетях чаще заменяется BatchNorm и аугментациями.
drop = nn.Dropout(p=0.3)
model.train() # маска активна, деление на (1-p) уже внутри
model.eval() # dropout выключен: детерминированный инференс
⚠️ Частая ошибка: забыть про разницу train/inference (и про model.eval() в PyTorch): dropout, оставленный включённым на инференсе, даёт шумные предсказания.
Что такое эмбеддинги и что изменилось при переходе от word2vec к контекстным (как в BERT)?
Что такое эмбеддинги и что изменилось при переходе от word2vec к контекстным (как в BERT)?
Короткий ответ: Эмбеддинг — плотный вектор, кодирующий смысл токена так, что близкие по смыслу объекты близки в векторном пространстве. Главный сдвиг: word2vec даёт статический вектор — один на слово всегда, а BERT-подобные модели — контекстный: вектор зависит от предложения, и полисемия наконец решена.
Подробно:
- word2vec (skip-gram) — учится предсказывать контекст по слову; после обучения это таблица «слово → вектор». «Ключ» от двери и «ключ» в лесу получают один и тот же вектор.
- Контекстные эмбеддинги — вектор слова считается трансформером с учётом всего предложения; «ключ» получает разные векторы в разных фразах.
- Задачи предобучения различаются — 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/год) поднимает дневной лимит и добавляет блиц-режим.