Библиотека собеса по Data Science | вопросы с собеседований
4.31K subscribers
440 photos
10 videos
1 file
452 links
Вопросы с собеседований по Data Science и ответы на них.

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что такое Transfer Learning?

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

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

#junior
#middle
👍10
Опишите архитектуру обычной свёрточной нейронной сети.

В типичной архитектуре свёрточной нейронной сети (CNN) есть несколько слоёв свёртки. За каждым из них следует слой с функцией активации (например, ReLU), затем идёт слой пулинга.

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

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

#junior
#middle
9👍4🌚1
Что вы знаете про параметрические и непараметрические модели в машинном обучении?

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

#junior
#middle
👍11
Что может случиться, если в стохастическом градиентном спуске (SGD) установить гиперпараметр momentum близким к единице (например, 0.9999)?

В этом случае алгоритм, скорее всего, значительно наберёт скорость, приближаясь к глобальному минимуму (в лучшем случае), но импульс заставит его «перескочить» минимум. Затем он замедлится и вернётся назад, снова ускорится, снова «проскочит» и это будет повторяться опять и опять. Поэтому, в целом, чтобы сойтись, алгоритму потребуется гораздо больше времени, чем с меньшим значением momentum.

#junior
#middle
💯81👍1
Допустим, у вас есть категориальная переменная, которая принимает тысячи разных значений. Как бы вы её закодировали?

Ответ зависит от того, какую задачу мы решаем: классификации или регрессии.

Если это регрессия, то один из способов — target энкодинг. Каждую категорию можно заменить на среднее значение целевой переменной для этой категории.

Если это бинарная классификация, то можно закодировать категориальную переменную, найдя вероятность целевой переменной принять значение 1, при условии, что объект принадлежит этой категории. Например, если у вас есть категориальная переменная «Город» для прогнозирования невозврата кредита, а вероятность того, что человек, живущий в Сан-Франциско, не вернёт кредит, равна 0,4, то вы замените значение «Сан-Франциско» на 0,4.

#junior
#middle
👍14
Какие стратегии подбора гиперпараметров вы знаете?

Можно назвать три стратегии:

✔️Grid Search
При таком подходе для каждого гиперпараметра пользователю необходимо вручную указать список значений, которые алгоритм сможет опробовать. Далее модель обучается, используя каждую комбинацию гиперпараметров, и возвращает комбинацию, которая даёт оптимальный результат. Этот подход может быть довольно затратным в вычислительном отношении.
✔️Случайный поиск
Этот подход похож на Grid Search, но отличается тем, что вместо указания того, какие значения следует проверять для каждого гиперпараметра, даётся верхняя и нижняя граница значений для каждого гиперпараметра. Затем с равномерной вероятностью выбираются случайные значения в пределах этих границ. Далее пользователю возвращается лучшая комбинация.
✔️Байесовская оптимизация
Этот подход основан на теореме Байеса. Эта теорема описывает вероятность наступления события на основе имеющейся информации. При Байесовской оптимизации строится вероятностная модель из набора гиперпараметров, который оптимизирует определённый показатель. Также используется регрессионный анализ для итеративного выбора наилучшего набора гиперпараметров.

#junior
#middle
🔥183
В чём разница между жёстким и мягким голосованием в ансамблях?

▪️ Жёсткое голосование называют ещё голосованием большинством. В этом случае общее предсказание ансамблем метки класса, например, выбирается по принципу «большинство классификаторов предсказали эту метку».

Например, если прогноз для определённой выборки такой:

- классификатор 1 -> класс 1
- классификатор 2 -> класс 1
- классификатор 3 -> класс 2

То ансамблевый классификатор определит объект как «класс 1».

Жёсткое голосование часто используется, когда все классификаторы считаются равноценными.

▪️В мягком голосовании общее предсказание ансамблем метки класса определяется через argmax суммы всех предсказанных вероятностей. Каждому классификатору можно присвоить определённые веса с помощью weights параметра. Когда веса предоставлены, прогнозируемые вероятности классов для каждого классификатора собираются, умножаются на вес классификатора и усредняются. Выбирается метка класса, у которой самая высокая средняя вероятность.

#junior
#middle
👍10
This media is not supported in your browser
VIEW IN TELEGRAM
Что вы знаете про метод k-средних (англ. k-means)?

Этот метод кластеризации, в основе которого лежит повторение двух действий: распределение объектов по кластерам и пересчёт центров кластеров.

Сначала центры кластеров выбираются случайно — их просто «разбрасывают» в пространстве признаков. Каждый объект относят к тому кластеру, к центру которого он оказался ближе всего. После этого центры кластеров пересчитывают как среднее арифметическое векторов признаков всех вошедших в кластер объектов. Затем объекты перераспределяются заново. Процесс повторяется до тех пор, пока центры кластеров не перестанут значительно меняться.

По сути, алгоритм k-means работает на уменьшение среднего квадрата евклидова расстояния от объектов до центров их кластеров.

#junior
#middle
👍162
Зачем может понадобиться преобразование Бокса-Кокса?

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

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

Можно пользоваться, например, методом boxcox из модуля scipy.stats.

#junior
#middle
👍143
Объясните разницу между эпохой и итерацией в машинном обучении

Здесь также стоит ввести понятие «батч». Батч — это партия данных, величину которой вы определяете сами.

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


Пример: можно разделить датасет из 2000 объектов на батчи размером 500 объектов. Тогда для завершения одной эпохи потребуется четыре итерации.

#junior
#middle
👍172
Что такое стемминг и лемматизация?

Это методики, которые используются при обработке текста в задачах NLP (обработки естественного языка).

Как правило, тексты содержат разные грамматические формы одного и того же слова. Для модели же важно рассматривать их как одно и то же слово. Для приведения словоформ к единой форме применяются стемминг и лемматизация.

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

#junior
#middle
👍6
В чём разница между CHAR и VARCHAR в SQL?

CHAR и VARCHAR — это типы данных для хранения символьных строк.

✔️CHAR: предназначен для хранения строк фиксированной длины. Если помещаемая в него строка короче заявленной длины, то она дополняется пробелами. Например, если был определён столбец с типом CHAR(5), то при внесении в него строки «cat», она дополнится двумя пробелами в конце.
✔️VARCHAR предназначен для хранения строк переменной длины. Никакие пробелы не добавляются.

CHAR более эффективен для хранения и обработки строк, длина которых всегда одинакова. Он всегда использует столько памяти, сколько выделено для него.

#junior
#middle
9
В каких ситуациях лучше не применять обобщённые линейные модели (generalized linear models, GLM)?

К ним относятся, в частности, линейная и логистическая регрессии.

1️⃣ Если отношения между переменными сильно нелинейные. В таких случаях лучше рассмотреть другие модели, которые могут это учесть.
2️⃣ Обобщённые линейные модели в идеале предполагают соблюдение некоторых условий: нормальность остатков, гомоскедастичность и отсутствие мультиколлинеарности. В противном случае, результаты модели могут быть ненадёжными.
3️⃣ GLM могут быть чувствительны к выбросам или экстремальным значениям.

#junior
#middle
5👍1🔥1
Что такое метрика BLEU?

Метрика BLEU (Bilingual Evaluation Understudy) — это один из методов оценки качества машинного перевода. Основная идея BLEU заключается в сравнении переведённого моделью текста с эталонными переводами, выполненными человеком.

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

Алгоритм, если коротко, такой: для каждой длины n-граммы (от 1 до 4) подсчитывается точность. Точность — это отношение количества совпавших с эталонными n-грамм в машинном переводе к общему количеству n-грамм в этом переводе. Затем эти точности комбинируются. Есть также штраф за краткость. Более подробно можно прочесть здесь.

#middle
🔥5
Какие проблемы есть у рекуррентных нейронных сетей (RNN)?

RNN — это нейронные сети для работы с последовательностями (текстами, временными рядами). Они имеют механизм для запоминания предыдущих входных данных. Тем не менее они подвержены некоторым проблемам:

▪️Взрывающийся градиент.
Это ситуация, при которой градиент экспоненциально растёт вплоть до полной потери стабильности RNN. Если градиент становится бесконечно большим, нейросеть проявляет проблемы с производительностью.
▪️Исчезающий градиент.
Это ситуация, обратная предыдущей. В этом состоянии градиент приближается к нулю, что приводит к потере RNN способности эффективно обучаться по предложенным данным. Для рекуррентных нейронных сетей характерен высокий риск исчезающего или взрывающегося градиента при обработке длинных последовательностей данных.
▪️Медленное обучение.
В целом, для RNN требуются огромные вычислительные мощности, большой объём памяти и много времени, если речь идёт о значительном количестве текстов.

#junior
#middle
👍4
В чём разница между косинусным сходством и косинусным расстоянием?

▫️Косинусное сходство (или близость)
Измеряет косинус угла между двумя векторами в пространстве. Это мера того, насколько вектора «похожи» друг на друга. Значение косинусного сходства варьируется от -1 до 1, где -1 означает, что вектора абсолютно непохожи, 0 — что нет корреляции, 1 — что похожи.
▫️Косинусное расстояние
Измеряет степень различия между двумя векторами. Рассчитывается по формуле едицина минус косинусное сходство. Значение варьируется от 0 до 2. 0 означает полное сходство, а 2 — полную противоположность.

#middle
👍171
Как предотвратить застревание градиентного спуска в локальных минимумах?

✔️Использование техник инициализации (например, Xavier / Glorot). Помогает установить подходящие начальные веса для процесса оптимизации.
✔️Использование оптимизаторов типа Adam или RMSProp, которые адаптируют скорость обучения для отдельных параметров.
✔️Введение случайности в процесс оптимизации, благодаря применению мини-батчей. Это помогает алгоритму выйти из локальных минимумов, добавляя шум к оценкам градиента.
✔️Добавление большего количества слоёв или нейронов.
✔️Подбор гиперпараметров с использованием методов случайного поиска и grid search.

#junior
#middle
👍111
В чём заключается разница между генеративными и дискриминативными моделями?

Генеративные модели фокусируются на создании новых образцов данных, а дискриминативные модели — на задачах классификации и прогнозирования на базе входных данных.


❤️ Генеративные модели

Их цель — моделировать совместное распределение вероятностей P(X, Y) входных данных X и целевой переменной Y. Они часто используется для задач, связанных с генерацией изображений и текста. Примеры: вариационные автоэнкодеры (VAE), генеративно-состязательные сети (GAN).

❤️ Дискриминативные модели

Их цель — моделировать условное распределение вероятностей P(Y | X) целевой переменной Y при заданном входе X. Используются для классификации или прогнозирования на основе входных данных. Примеры: логистическая регрессия, свёрточные нейронные сети (CNN) для классификации изображений.


#junior
#middle
7👍2
Что вы знаете про использование марковских цепей в анализе последовательностей?

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

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

✔️Скрытые Марковские модели используются, например, для моделирования фонем и слов в системах распознавания речи. Также Марковские модели применимы в моделировании временных рядов финансовых данных, таких как цены на акции.

#middle
👍91
Что за алгоритм DBSCAN и как его использовать?

Density-Based Spatial Clustering of Applications with Noise (DBSCAN) — это алгоритм кластеризации данных. В его основе лежит понятие плотности; кластеры определяются как области высокой плотности, разделённые областями низкой плотности.

✔️Для использования DBSCAN нужно определить два ключевых параметра: eps (радиус поиска соседей для каждой точки) и min_samples (минимальное количество точек, необходимое для формирования плотного региона). Алгоритм находит некоторую центральную точку кластера. Таковой она считается, если содержит более min_samples в радиусе eps. После того как центральная точка кластера определена, алгоритм включает в список обхода все доступные для неё точки в пределах eps. Процесс повторяется. По сути, алгоритм пытается расширить кластер. Если точка не достигает порога min_samples, она помечается как шум.

DBSCAN эффективен для данных с кластерами неправильной формы и хорошо справляется с выбросами.

#junior
#middle
🔥102💯2🥰1