Назад к материалам

Видео + статья / Собеседования

Собеседование Data Scientist: что повторить по Python, ML и статистике

План подготовки Data Scientist к техническому интервью: Python, алгоритмы классификации, переобучение, таблицы, рекомендации и TF-IDF.

Опубликовано
Видео вышло
Видео
8:15
Текст
6 минут

Если ролик не загружается, выберите другую площадку.

Смотреть на

На собеседовании Data Scientist знания проверяют сразу с нескольких сторон. Кандидату могут дать задачу на вероятность, спросить про устройство Python, сравнить модели классификации, попросить обработать таблицу и обсудить метрики продукта. Простого знания определений здесь мало: нужно связать метод с задачей и объяснить решение понятным языком.

Мы в ЮНИКОД делим подготовку на четыре блока: Python, машинное обучение, данные и продуктовые задачи. Так проще увидеть пробелы и не пытаться повторить всю профессию за несколько вечеров.

Блок 1. Python и базовое алгоритмическое мышление

Задача с кубиком или монетой проверяет не только вероятность. Интервьюеру важно увидеть, как кандидат формулирует события, считает варианты и проверяет крайние случаи. Мы сначала проговариваем условие своими словами, затем фиксируем допущения и только после этого считаем.

По Python часто спрашивают термины, которые встречаются в обычном коде:

  • итератор хранит состояние обхода и выдаёт следующий элемент;
  • генератор создаёт значения по мере запроса и не обязан держать всю последовательность в памяти;
  • декоратор принимает функцию или класс и добавляет поведение без изменения вызывающего кода;
  • контекстный менеджер управляет входом и выходом из блока, например открытием и закрытием файла.

Определение лучше сразу подкреплять примером. Для генератора можно описать чтение большого файла по строкам, для декоратора — измерение времени функции или проверку доступа.

Блок 2. Классическое машинное обучение

Список алгоритмов классификации сам по себе не показывает понимания. Мы готовим для каждой модели три ответа: как она строит границу решения, какие данные ей подходят и какие параметры сильнее всего меняют результат.

Особенно часто сравнивают случайный лес и градиентный бустинг.

Критерий Случайный лес Градиентный бустинг
Обучение деревьев Независимо, на разных подвыборках данных и признаков Последовательно, с исправлением текущей ошибки
Объединение Усреднение или голосование Сумма вкладов деревьев
Настройка Часто даёт хороший базовый результат без долгого подбора Сильнее зависит от темпа обучения, числа и глубины деревьев
Объяснение на интервью Снижает разброс за счёт ансамбля разных деревьев Шаг за шагом уменьшает выбранную функцию потерь

Официальная документация scikit-learn относит оба метода к ансамблям: они объединяют несколько базовых моделей, чтобы получить более устойчивый результат. Это хорошая отправная точка, но на интервью обычно ждут и связь с практикой.

Блок 3. Признаки, переобучение и проверка качества

Переобучение нельзя определить только по высокой метрике на обучающей выборке. Нужно сравнить качество на данных, которые модель не использовала при обучении. Для более устойчивой оценки применяют кросс-валидацию: данные несколько раз делят на обучающую и проверочную части.

Когда спрашивают, как бороться с переобучением, мы не выдаём случайный список. Сначала ищем причину:

  • слишком сложная модель — ограничиваем глубину, добавляем регуляризацию или раннюю остановку;
  • мало наблюдений — собираем данные или используем более простой метод;
  • признаки содержат подсказку из будущего — исправляем разделение данных;
  • качество скачет между частями выборки — проверяем разбиение и устойчивость метрики.

Отбор признаков тоже начинается с проверки. Можно удалить дублирующие и бесполезные поля, оценить важность признаков, применить регуляризацию или последовательный отбор. Но любой выбор подтверждаем на валидации, иначе легко улучшить только случайное разбиение.

Блок 4. Таблицы, текст и рекомендации

Практическая часть часто ближе к рабочему дню, чем теоретические вопросы. Кандидат получает таблицы и должен объединить их, обработать пропуски, посчитать агрегаты или подготовить признаки. Мы советуем сначала назвать ключи соединения и ожидаемое число строк. После операции стоит проверить дубликаты и потерянные записи.

Вот короткий пример такого ответа на Python с Pandas:

Пример кодаPython
import pandas as pd

# Заказы — основная таблица: все её строки нужно сохранить.
orders = pd.DataFrame({
    "order_id": [101, 102, 103],
    "user_id": [1, 2, 99],
})

# Справочник пользователей добавит к заказам название сегмента.
users = pd.DataFrame({
    "user_id": [1, 2],
    "segment": ["new", "regular"],
})

# left join сохраняет все заказы. validate остановит код,
# если одному user_id в справочнике соответствует несколько строк.
result = orders.merge(
    users,
    on="user_id",
    how="left",
    validate="many_to_one",
    indicator=True,
)

# Проверяем, что соединение не потеряло и не размножило заказы.
assert len(result) == len(orders)

# Значение left_only покажет заказ, для которого пользователь не найден.
print(result["_merge"].value_counts())

Параметр validate проверяет, что каждому заказу соответствует не больше одной строки пользователя. Колонка _merge покажет left_only для заказа с неизвестным user_id. Такой код не просто объединяет данные, а сразу проверяет два риска: размножение строк и пропуски после соединения.

Для текста полезно понимать TF-IDF. Частые слова внутри документа получают больший вес, но слова, встречающиеся почти везде, становятся менее важными. Это простой и сильный базовый подход для поиска, классификации и сравнения текстов.

В задаче про рекомендации главное — не начать сразу с нейросети. Мы уточняем место показа, доступную историю пользователя и бизнес-цель. Затем предлагаем базовое решение, например популярные товары, и только после этого — персональную модель. Качество нужно измерять и по поведению пользователя, и по бизнес-результату. Одна техническая метрика не заменяет проверку в продукте.

План подготовки на неделю

Мы используем короткий цикл подготовки:

  • пройти пробное интервью и отметить темы, где ответ распадается;
  • посвятить четыре дня отдельным блокам: теории, задачам и ответам вслух;
  • провести полное интервью с таймером;
  • разобрать ошибки и повторить слабые вопросы.

На тренажёре собеседований ЮНИКОД этот цикл можно проходить по выбранной профессии. Мы связываем вопросы с темами, помогаем тренировать объяснение и превращаем ошибки в понятный план следующей подготовки.

Источники

частые вопросы

Короткие ответы

Нужно ли Data Scientist писать код на собеседовании?

Часто да. Полезно уметь без подсказок обработать таблицу, написать небольшую функцию и объяснить сложность решения. Формат зависит от компании и уровня позиции.

Как объяснить разницу между случайным лесом и градиентным бустингом?

Случайный лес обучает много разнообразных деревьев независимо и объединяет их ответы. Градиентный бустинг строит деревья последовательно: каждое новое дерево помогает уменьшить ошибку текущей композиции.

Что отвечать на вопрос о переобучении?

Сначала дать определение, затем назвать признаки проблемы и способы проверки. После этого привести методы борьбы: более строгая валидация, регуляризация, упрощение модели, больше качественных данных или ранняя остановка.

Как тренироваться перед техническим интервью?

Составить карту тем, отвечать на вопросы вслух, решать короткие задачи с ограничением по времени и разбирать каждый пропуск сразу после тренировки.

следующий шаг

Соберите подготовку к DS-интервью в один маршрут

Тренажёр ЮНИКОД помогает пройти вопросы по темам, объяснять решения вслух и возвращаться к пробелам до реального собеседования.

Тренироваться по вопросам →