TGViewer
Задачи DS - Собеседования, Соревнования, ШАД Задачи DS - Собеседования, Соревнования, ШАД @zadachi_ds · 8.27K subscribers
Post #417 4.76K
Реальное МЛ собеседование на стажировку в Т-банк

Наш студент сделал расшифровку записи собеса, делимся с вами! Кстати, решение экзамена уже выложено на нашем курсе мл про, ии агенты про и алгоритмы про.
➡️ Записаться.

1. «Расскажи, как устроено дерево решений?»

Дерево решений – это модель, которая не использует градиентный спуск (как нейронки или логистическая регрессия). Вместо этого оно строит разбиения данных по принципу «жадного» перебора. На каждом шаге мы смотрим все признаки, все возможные пороги и выбираем то разбиение, которое даёт максимальный прирост чистоты (Information Gain).

А функции потерь у дерева в классическом понимании нет – это частая ловушка на собесах, когда интервьюер спрашивает: «А какая у дерева функция потерь?» Правильный ответ: «Её нет, мы максимизируем информационный выигрыш».

Критерии остановки: глубина, минимальное число объектов в листе или минимальное улучшение.
Сложность построения (если мы сортируем признаки): O(N·M·log N), где N – объектов, M – признаков. Это спрашивали, так что запомните.

2. «Как работать с категориальными признаками?»

• One‑hot encoding – для каждого уникального значения создаём отдельный столбец (1/0). Подходит, если значений не слишком много (иначе раздуваем данные).
• Target encoding – заменяем категорию на среднее значение целевой переменной для этой категории. Это круто, потому что учитывает влияние на ответ. Именно его по умолчанию использует CatBoost.
• Frequency encoding – заменяем на частоту встречаемости.

Но есть нюанс: некоторые модели умеют работать с категориями напрямую, без всякого кодирования (например, тот же CatBoost или LightGBM с параметром categorical_feature). Так что либо кодируем, либо оставляем как есть, если модель поддерживает.
Если сомневаетесь – проверьте оба варианта на валидации и выберите лучший.

3. «Расскажи про случайный лес: обучение, свойства, важность признаков»
Этот вопрос тянет за собой несколько подвопросов.

Обучение леса:
• Мы строим много деревьев, каждое на бэггинге – берём случайную подвыборку данных с повторением и случайное подмножество признаков. Это снижает дисперсию (переобучение), поэтому деревья в лесу можно делать глубокими – bias и так низкий, а дисперсия усредняется.
• Важность признаков в лесу считается двумя способами:
— по количеству разбиений (сплитов) с участием этого признака,
— по суммарному уменьшению impurity (например, Gini) при сплитах по этому признаку, усреднённому по всем деревьям.

Также есть универсальные методы, которые работают с любой моделью: permutation importance (перемешиваем признак и смотрим, как падает качество), а также библиотеки SHAP и ELI5.

4. «А теперь бустинг – в чём его отличие от леса?»
Здесь нужно чётко разделить.

• Бустинг – это последовательное построение деревьев, где каждое следующее дерево учится на ошибках предыдущего. Он нацелен на снижение смещения (bias), поэтому деревья в бустинге берут неглубокими (обычно глубина 3–6) – иначе они слишком сложные и переобучаются.
• Ключевое отличие от леса: в лесу деревья независимы, их можно удалять без особого ущерба (усреднение сглаживает). В бустинге же порядок критичен – самое важное первое дерево, если его убрать, вся композиция рухнет.

5. «Почему бессмысленно строить бустинг поверх линейных моделей?»

Потому что сумма линейных моделей – снова линейная модель. Если мы последовательно добавляем линейные алгоритмы, общая функция остаётся линейной, и мы не получаем никакого выигрыша в сложности. Только если мы добавляем нелинейные преобразования – но тогда это уже не «чистый» бустинг. Поэтому в качестве базовых алгоритмов для бустинга всегда берут нелинейные модели (деревья).

5. Метрики классификации
Тут был целый блок вопросов. Precision, Recall, F1, ROC‑AUC – стандартный набор.

• Почему F1 – это среднее гармоническое, а не арифметическое?
Потому что если одна из метрик (Precision или Recall) равна нулю, то среднее гармоническое даёт 0 – а это честно, модель никуда не годится. Среднее арифметическое дало бы 0.5, что вводило бы в заблуждение. А среднее геометрическое тоже даёт 0, но оно всегда выше гармонического, поэтому F1 – более пессимистичный и строгий показатель. Нам важна строгость.

ROC‑AUC – это вероятность того, что модель поставит случайный положительный объект выше случайного отрицательного. Простыми словами: качество ранжирования. Если заказчик не в теме, я объясняю так: «Мы смотрим, насколько хорошо модель отделяет единицы от нулей при любом пороге».

Для многоклассовой классификации есть два вида усреднения:
• макро‑усреднение: сначала считаем метрику для каждого класса отдельно, потом берём среднее. Используем, если важен каждый класс (например, редкие болезни).
• микро‑усреднение: считаем общую метрику по всем объектам сразу. Используем, если важен общий результат (например, качество на всех клиентах). При дисбалансе классов эти показатели могут сильно отличаться.

6. Практическая задачка
Интервьюер дал таблицу с предсказаниями, отсортированными по убыванию вероятности, и попросил посчитать ROC‑AUC. Я, честно говоря, поленился считать, но объяснил принцип: нужно для каждого порога построить точки (FPR, TPR) и взять площадь под кривой. По отсортированным данным это легко делается через сумму рангов положительных объектов. Формулу я там не приводил, но суть понял.

7. Ошибка в коде
Показали кусок кода обучения модели и спросили: «Что здесь не так?»
А там забыли zero_grad() перед вызовом step() в PyTorch – градиенты накапливаются, и модель обучается криво. Это частая ошибка джунов. Проверяйте всегда!
Вот такие вопросы были. Как видите, ничего запредельного – но нужно чётко понимать теорию и уметь объяснять на пальцах.

Еще больше вопрос в нашем открытом банке собесов и тестовых заданий: смотрите на сайте.

Подписаться: @zadachi_ds
  • 🔥 11
  • ❤ 4
  • 🫡 1
More from @zadachi_ds
  1. Sep 30, 2026Нужен ли ШАД, чтобы попасть в ML Попросил выпускника-«старичка» рассказать о своих мыслях…
  2. Sep 28, 2026Рынок команд ML Продолжаем разбирать в какую команду (отдел) сейчас залететь выгоднее. Про…
  3. Sep 28, 2026‼️АНАЛИТИКИ, ОБЩИЙ СБОР ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 1. Как упаковыват…
  4. Sep 27, 2026Ты поступишь в ШАД Старт набора на наши ШАДовские курсы: без воды и лишней теории, 3 месяц…
  5. Sep 25, 2026Слив вопросов с ML-собесов в Т-Банке и Яндексе Продолжаем грабить бигтехи, чтобы вы реальн…
  6. Sep 22, 2026Полный цикл собесов в Яндекс (МЛ 2026) Сейчас студенты наших курсов под чутким сопровожден…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →