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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Знаете ли вы про функцию Softmax? Как она используется в машинном обучении?

Функция Softmax преобразует вектор вещественных чисел (часто называемых логитами) в вектор вероятностей. Каждое число в выходном векторе представляет вероятность принадлежности объекта к соответствующему классу. Сумма всех получившихся вероятностей в выходном векторе равна единице.

В формуле Softmax параметр n — это количество классов.

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

#junior
#middle
👍10
Что вы знаете про обучение ассоциативным правилам? Что такое поддержка, достоверность и лифт?

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

Поддержка, достоверность и лифт — это основные меры для определения
ассоциаций.
🔸Поддержка — показывает, как часто появляется конкретный товарный набор.
🔸Достоверность — показывает, как часто товар Y появляется вместе с товаром X.
🔸Лифт — показывает, как часто товары X и Y появляются вместе, одновременно учитывая, с какой частотой появляется каждый из них.

#junior
#middle
👍3🤔1
Что такое Transfer Learning?

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

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

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

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

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

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

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

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

#junior
#middle
👍11
Назовите способы обработки пропущенных значений в датасете

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

✔️Иногда объекты с пропущенными значениями можно просто выбросить.
✔️Вместо NaN иногда можно поставить нулевое значение или любое другое выбранное число.
✔️Можно заменить пропуски на среднее значение, медиану или моду.
✔️Можно провести множественную импутацию данных (MICE). В это случае восстановление каждого значения проводится не один раз, а много. В целом, метод прогнозирует пропущенные значения на основе доступных значений переменной, в которой мы заполняем пропуски, и других переменных.
✔️Также есть импутация данных с помощью глубоко обучения. Обучение нейросети на части данных без пропусков позволяет восстанавливать недостающие значения.

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

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

#junior
#middle
💯81👍1
Какие основные типы данных в Python вы знаете?

Целые числа (int) — тут всё понятно, это обычные числа.
Вещественные числа (float) — их ещё называют числа с плавающей точкой.
Комплексные числа (complex) — их можно записывать так:

x = complex(1, 2)
print(x) # -> (1+2j)

Списки (List) — изменяемые коллекции, которые могут содержать элементы различных типов, упорядочены, поддерживают операции добавления и удаления элементов.
Кортежи (Tuple) — неизменяемые коллекции, которые также могут содержать элементы различных типов, упорядочены.
Строки (String) — неизменяемые коллекции. По сути, строка — это упорядоченная последовательность символов.
Множества (Set) — изменяемые коллекции, которые содержат уникальные элементы, не поддерживают индексацию и срезы.
Неизменяемые множества (Frozenset) — это те же множества, только неизменяемые.
Словари (Dictionary) — изменяемые коллекции пар ключ-значение, упорядочены начиная с Python 3.7.

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

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

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

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

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

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

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

#junior
#middle
🔥183