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

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

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

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

Наши каналы: https://t.me/proglibrary/9197
Download Telegram
Что вы знаете про обучение ассоциативным правилам? Что такое поддержка, достоверность и лифт?

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

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

#junior
#middle
Что такое Transfer Learning?

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

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

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

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

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

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

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

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

#junior
#middle
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

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

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

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

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

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

#junior
#middle
В чём разница между методами apply и applymap в Pandas?

Оба метода принимают функции на вход, но работают с ними по-разному. Метод applymap применяет функцию к каждому отдельному элементу DataFrame. В то же время apply применяется к целым строкам или столбцам DataFrame.

Если говорить о реальном применении методов, то applymap используется для трансформации датафреймов, а apply — для более сложных операций и агрегирования. Applymap возвращает датафрейм. Apply же может вернуть скалярное значение, серию или датафрейм.

Начиная с версии Pandas 2.1.0 метод DataFrame.applymap считается устаревшим и был переименован в DataFrame.map.
Какие основные типы данных в Python вы знаете?

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

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

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

#junior
🧠Чему вы бы хотели научиться?

Расскажите нам о ваших пожеланиях: какие навыки вы хотели бы прокачать в ближайшее время или какую профессию хотели бы приобрести?

За прохождение опроса вы получите промокод на скидку 15% на все наши курсы до конца 2024 года.

👉Опрос по ссылке👈
Допустим, у вас есть категориальная переменная, которая принимает тысячи разных значений. Как бы вы её закодировали?

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

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

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

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

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

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

#junior
#middle
🤖 Напоминаем, что у нас есть еженедельная email-рассылка, посвященная последним новостям и тенденциям в мире искусственного интеллекта.

В ней:
● Новости о прорывных исследованиях в области машинного обучения и нейросетей
● Материалы о применении ИИ в разных сферах
● Статьи об этических аспектах развития технологий
● Подборки лучших онлайн-курсов и лекций по машинному обучению
● Обзоры инструментов и библиотек для разработки нейронных сетей
● Ссылки на репозитории с открытым исходным кодом ИИ-проектов
● Фильмы, сериалы и книги

👉Подписаться👈
В чём разница между жёстким и мягким голосованием в ансамблях?

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

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

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

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

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

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

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

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

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

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

#junior
#middle
Что вы знаете про нормальное распределение? Зачем оно нужно в Data Science?

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

У нормального распределения есть два параметра: математическое ожидание (среднее) и дисперсия. Распределение, у которого эти параметры соответственно равны нулю и единице, называют стандартным.

Также у нормального распределения есть несколько свойств:
▪️Симметричность относительно своего среднего значения.
▪️ График нормального распределения имеет характерную форму колокола.
▪️ Правило трёх сигм: около 68% значений лежат в пределах одного стандартного отклонения от среднего, около 95% — в пределах двух стандартных отклонений, и около 99.7% — в пределах трёх стандартных отклонений.

Многие статистические методы предполагают или опираются на нормальное распределение данных. К примеру, t-тест эффективен только тогда, когда данные соответствуют нормальному распределению. Кроме того, некоторые алгоритмы машинного обучения предполагают, что входные данные распределены нормально.

#junior
Что такое линейный дискриминантный анализ (LDA)?

Это статистический метод, используемый для классификации. Основная цель LDA — найти линейную комбинацию признаков, которая лучше всего разделяет пространство объектов на необходимое число классов.

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

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

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

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

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

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

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

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

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


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

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

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

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

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

#junior
#middle