TGViewer
Задачи DS - Собеседования, Соревнования, ШАД Задачи DS - Собеседования, Соревнования, ШАД @zadachi_ds · 8.26K subscribers
Post #195 12.9K
Вопросы с Data Science собеседования в Т-Банке
Напишите реализацию класса SparseVector

class SparseVector:
def __init__(self, elements: list[int]) -> None:
pass

def dot_product(self, other_vector: 'SparseVector') -> int:
pass

data1 = [0, 0, 3, 40, 0, 0, 0, 5, 0]
data2 = [1, 0, 0, 2, 0, 14, 0, 0, 0]

sparse_vec1 = SparseVector(data1)
sparse_vec2 = SparseVector(data2)
product_result = sparse_vec1.dot_product(sparse_vec2)
# Ожидаемый результат: 80

class SparseVector:
def __init__(self, elements: list[int]) -> None:
self.non_zero = {i: val for i, val in enumerate(elements) if val != 0}

def dot_product(self, other_vector: 'SparseVector') -> int:
common_indices = set(self.non_zero.keys()) & set(other_vector.non_zero.keys())
return sum(self.non_zero[i] * other_vector.non_zero[i] for i in common_indices)

Как бустинги обрабатывают категориальные признаки?

например, CatBoost и LightGBM имеют встроенную обработку, а вот XGBoost — требует ручного кодирования
Дайте объяснение target encoding

значение категориального признака кодируется в зависимости от его влияния на целевую переменную(категории заменяются на среднее/медиану таргета для каждой группы)

Напишите формулы энтропии и индекса Джини в узле дерева

H(S)= -Sigma_{i=1}^N(p_i*log(p_i))
G(S)=1-Sigma_{i=1}^N(p_i^2),
где S-текущий узел, N-кол-во классов, p_i- доля объектов класса i в узле S

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

максимизацией для Information Gain, максимизируем "информативность" разделения

Как обучается случайный лес?

Случайный лес обучается путём создания множества деревьев решений, каждое из которых обучается на случайной подвыборке данных aka бутстрэп и выбирает признаки для разбиения узлов из случайного подмножества. Итоговый результат определяется голосованием (классификация) или усреднением (регрессия) предсказаний всех деревьев
Как дать оценку важности признаков?

Для линейных моделей важность признаков оценивают по абсолютным значениям весов (после масштабирования данных), для деревьев/леса — по частоте использования признака в разбиениях и суммарному уменьшению примеси (Gini/Information Gain), нормированному на число деревьев.
Permutation importance — универсальный метод: для каждого признака случайно перемешивают его значения и измеряют, насколько падает точность модели; чем сильнее падение, тем важнее признак
Какая есть функция потерь для деревьев?😜


@zadachi_ds
  • 🔥 23
  • ❤ 7
  • 👍 5
  • 💅 4
  • 🌚 1
More from @zadachi_ds
  1. Sep 22, 2026Полный цикл собесов в Яндекс (МЛ 2026) Сейчас студенты наших курсов под чутким сопровожден…
  2. Sep 22, 2026Протестируй своё решение на задаче и данных от ПАО «Интер РАО» На хакатоне ты создашь умно…
  3. Sep 20, 2026❗️ Яндекс открыл Intern Week Offer на стажировку, где всего за неделю ты можешь получить о…
  4. Sep 20, 2026Почему ты должен попасть на DS-буткемп Авито прямо сейчас Дедлайн по заявкам до 20 сентябр…
  5. Sep 19, 2026Вопросы с собеса Авито Буткемп ДС Дедлайн подачи 20 сентября, торопитесь! Разбор же теста…
  6. Sep 17, 2026Полный слив ML-собеса в Avito Наши выпускники не только сейчас активно проходят собесы, но…
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 →