Machine learning Interview
24.5K subscribers
1.05K photos
74 videos
12 files
712 links
Разбираем вопросы с собеседований по Machine Learning, Data Science, Deep Learning и Нейронным сетям, Python.

Вопросы - @notxxx1


@itchannels_telegram -🔥лучшие it каналы

РКН: clck.ru/3FmwRz
Download Telegram
🖥 Практическая задача

♠️Из колоды карт, содержащей 52 карт, извлекается случайно 5 карт. Каковы вероятности следующих событий:

A: Все 5 карт бубновой масти.
B: Все 5 карт одной масти.
C: Среди извлеченных карт имеется 3 туза.
D: Среди извлеченных карт имеются 2 дамы и один король.
E: Среди извлеченных карт имеются десятка, валет, дама, король и туз.
F: Извлеченные карты – десятка, валет, дама, король и туз одной масти.

✔️ Решение

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Интервью Amazon Data Scientist | Бывший специалист по данным FAANG

В этом
руководстве вы найдете подробные сведения о процессе собеседования и советы по подготовке, которые помогут вам успешно пройти собеседование в Amazon.

⭐️ Medium post

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ 120 вопросов на собеседовании по науке о данных

🖥 Github

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 SQL для анализа данных. 7 аспектов SQL, которые следует знать специалисту по работе с данными.

Пост содержит в себе все ключевые элементы SQL, которые должен знать каждый специалист по Data Science. Этой статьей мы начинаем цикла статей – SQL для анализа данных.

➡️ Читать статью
🖥 Десять практических упражнений SQL

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
✔️ Большой список актуальных лекций, практик, книг и курсов по машинному обучению.

Список актуальных материалов, с которыми можно легко подготовиться к собеседованию по мл.

➡️ Список

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
45 тем, которые могут спросить на собеседовании по Машинному обучению

➡️ Читать дальше

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
💫 Что такое Q-обучение ? Как применяется в сфере оптимизации бизнес-процессов ?

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

Q-Learning в сфере оптимизации бизнес-процессов

@machinelearning_interview
✔️ Что такое смещение в датасетах? Приведите пример смещения.

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

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

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

Области, ограниченные какой-то особенностью, называют доменами. Например, медицинским доменом назовут датасет, который содержит медицинские тексты. Использование модели внутри домена называется in-domain, а за его пределами – out-of-domain. Часто получается, что модели хорошо работают внутри домена, но плохо вне его. Это происходит из-за смещения модели в сторону домена, на котором она обучалась, относительно теоретического общего домена, который покрывал бы все возможные варианты.

Пример: модель обучили на комментариях пользователей в социальных сетях, она не учитывает лингвистические особенности языка как глубокие признаки и опирается на словарь. Такая модель будет работать плохо для задачи по классификации научных статей. Минимизация смещения позволяет добиться качественной работы модели при ее обучении на конкретном датасете и, как следствие, лучшей ее генерализации.

В теории сейчас нет строгой классификации факторов, влияющих на появление смещения. На мой взгляд, есть несколько причин появления смещения в данных:

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

- Отсутствие баланса – если в датасете примеров одного класса значительно больше, чем другого, то модель, скорее всего, выучится именно на мажорном классе, не принимая во внимание признаки минорного.

- Нерепрезентативность – ситуация, когда в датасете слабо представлены разные случаи. Яркий пример, представленный выше, – с нецензурными словами. Это означает, что в датасете появляется перекос в сторону какого-то класса по определенному признаку.

- Неправильный режим обучения – косвенный фактор, при котором смещение проявляется, когда модель недообучается.

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

@machinelearning_interview
Какой из способов ансамблирования алгоритмов помогает уменьшить дисперсию?
Anonymous Quiz
42%
Бустинг
39%
Бэггинг
18%
Стекинг
✔️ QUIZ TOPIC - NATURAL LANGUAGE PROCESSING

Интересный тест из 30 вопросов по NLP.

➡️ Quiz

👇Делитесь своими результами в комментариях.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вопросы о графах на собеседованиях МО

Вам может быть предоставлен список ребер и задача построить собственный граф для выполнения обхода.


Зачастую вопросы о лбщих представлениях о графах включают вопросы о:

1 . Матрицах смежности.
2. Списках примыканий.
3. Хашмап хэшмапов.


Графы делятся на два основных типа: ориентированные и неориентированные. У неориентированных графов рёбра между узлами не имеют какого-либо направления, тогда как у рёбер в ориентированных графах оно есть.

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

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

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

Существуют специальные алгоритмы для просмотра рёбер и вершин в графах — так называемые алгоритмы обхода. К их основным типам относят поиск в ширину (breadth-first search) и в глубину (depth-first search). Как вариант, с их помощью можно определить, насколько близко к корневому узлу находятся те или иные вершины графа. В видео ниже показано, как на JavaScript выполнить поиск в ширину.

Вопросы про алгоритмы поиска:

Общие – поиск в ширину, поиск в глубину.

Необычные – топологическая сортировка, алгоритм Дейкстры.
Редкие – алгоритм Беллмана-Форда, Флойда-Уоршелла, Прима, Краскала.

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

Простой шаблон для выполнения поиска в глубину выглядит следующим образом:

def traverse(matrix):
rows, cols = len(matrix), len(matrix[0])
visited = set()
directions = ((0, 1), (0, -1), (1, 0), (-1, 0))
def dfs(i, j):
if (i, j) in visited:
return
visited.add((i, j))
# Обход соседей
for direction in directions:
next_i, next_j = i + direction[0], j + direction[1]
if 0 <= next_i < rows and 0 <= next_j < cols: # Проверка границы
# Добавить любую другую проверку здесь ^
dfs(next_i, next_j)

for i in range(rows):
for j in range(cols):
dfs(i, j)


Тупиковые ситуации:

- пустой граф;
- граф с одним или двумя узлами.
- непересекающиеся графы;
- граф с циклами.


@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
20 вопросов (с ответами) от ChatGPT для выявления фейковых поддельных специалистов по данным.

https://www.kdnuggets.com/2023/01/20-questions-detect-fake-data-scientists-chatgpt-1.html

@machinelearning_interview
📌 S7 Тестовое задание для кандидата DS.

Кандидатам предоставлены данные о продажах в сети магазинов в одном городе за несколько лет. В магазинах периодически проводятся рекламные акции. Решение лучше присылать в виде jupyter notebook’а.

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

Данные: ● Данные для обучения:
sales_train.csv - индексы продаж по дням(все начинаются с 1).
advert_train.csv - рекламные акции в магазинах (обозначены 1 в соответствующую дату)

Данные для проверки:
advert_test.csv - рекламные акции на тестовом периоде
deploy_example.csv - формат данных в котором нужно построить прогноз продаж

Оформление результатов:
● Подготовить прогноз продаж в формате deploy_test.csv
● Прислать оформленный код в виде ipython ноутбука или R sweave документа
● Оформить исследование влияния рекламных акций в формате презентации (2-3 слайда максимум)

@machinelearning_interview
📌 Тестовое задание для кандидата Revo:Mokka.

В файле revo_ds_test_task.csv собраны данные по повторным займам текущих клиентов компании.

По имеющемуся набору данных, необходимо построить модель, которая будет прогнозировать значение целевой переменной 'bad_flag'. Подготовить небольшую презентацию (1-2 слайда), в которой аргументируется выбор модели и показан предполагаемый уровень дефолтности при различных уровнях одобрения.

Расчеты желательно предоставить в виде python-скрипта / jupyter ipythone notebook.

Решение

@machinelearning_interview
📌 Тестовое задание

Задача
Требуется: предложить модель, сегментирующую окурок сигареты на фотографии.

Вход: фотография 512x512x3.
Выход: маска окурка сигареты 512x512.
Метрика: Dice coefficient.

Данные
Ссылка на скачивание данных: link.

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

Доступные данные разделены на несколько папок:

- real_test содержит фотографии 512x512x3;
- train/images содержит фотографии 512x512x3;
- train/coco_annotations.json содержит аннотации в формате COCO;
- val/images содержит фотографии 512x512x3;
- val/coco_annotations.json содержит аннотации в формате COCO.

Результаты
Для лучшей модели требуется создать 2 файла, которые необходимы для валидации Вашего решения:

- сохраненные маски для картинок из valid в формате pred_valid_template.csv (в архиве с data) и залить его с тем же именем (см. notebooks/GettingStarted.ipynb);
- html страницу с предсказанием модели для всех картинок из real_test и папку с используемыми картинками в этой html странице для её просмотра. Создать zip файл c html и изображениями и залить его в папку results.

Также необходимо:

- подготовить код (сам репозиторий) для проверки (докстринги, PEP8);
- создать отчет (можно прямо в ноутбуке) с описанием Вашего исследования, предобработки, постобработки, проверямых гипотез, используемых моделей, описание лучшего подхода и т.п. (он должен лежать в папке notebooks);

Рекомендуемый pipeline решения:
Предполагается следующий pipeline решения поставленной задачи:

- fork данного репозитория;
- ознакомиться с критериями;
- скачать данные;
ознакомиться с notebooks/GettingStarted.ipynb;
ознакомиться с данными, разобраться с их форматом;
ознакомиться с базовой статьей;
- провести анализ данных;
- написать методы аугментации данных;
- реализовать нейросеть/нейросети (необязательно с нуля);
- провалидировать модели;
- выбрать лучшую модель на val и посчитать для нее метрики;
- получить результаты на реальных изображениях real_test и сохранить их;
проанализировать результаты, сформулировать проблемы модели.
Критерии
При оценке решения этой задачи акцент будет делаться на (в порядке приоритета):

1. Качество исследования в jupyter notebook и чистота кода. В этот критерий входит читаемость и адекватность кода, содержательность комментариев, правильное оформление графиков (если таковые будут), отсутствие смысловых ошибок в коде. Наличие docstrings к написаным функциям приветствуется. Также будет оцениваться демонстрация предпринятых шагов и структурирование кода (разные по смыслу куски кода разделены по пакетам).

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

3. Значение метрик на контрольной выборке и общая адекватность модели.
4. Обоснование выбора моделей (процесс выбора моделей).
5.Анализ результатов итоговой модели.

@machinelearning_interview
🖥 Задачи из интервью Google Data Science

Вы собираетесь поехать в Лондон, и хотите знать, нужно ли брать с собой зонт или нет. Вы знаете, что вероятность дождя в Лондоне в определенный день составляет 25%. Вы звоните трем своим случайным друзьям и спрашиваете каждого из них, идет ли дождь. Вероятность того, что ваш друг скажет правду, составляет 2/3, а вероятность того, что он разыграет вас, составляет 1/3. Если все трое из них скажут, что идет дождь, то какова вероятность того, что на самом деле в Лондоне идет дождь?

Решение

Вы можете сказать, что этот вопрос связан с байесовской теорией из-за последнего утверждения, которое по существу соответствует структуре: «Какова вероятность того, что A истинно, если B истинно?».

P(A) = вероятность дождя = 25%
P(B) = вероятность того, что все 3 друга говорят, что идет дождь
P(A|B) вероятность того, что идет дождь, если все друзья говорят, что идет дождь
P(B|A) вероятность того, что все 3 друга говорят, что идет дождь, если идет дождь = (2/3)³ = 8/27

Шаг 1: Найдем P(B)
P(B) = P(B | A) * P(A) + P(B | не A) * P(не A)
P(B) = (2/3)³ * 0.25 + (1/3)³ * 0.75 = 0.25 * 8/27 + 0.75 * 1/27


Шаг 2: Теперь вычислим P(A|B)

P(A | B ) = P(B | A) * P(A) / P(B),
P(A | B
) = 0,25 * (8/27) / (0,25 * 8/27 + 0,75 * 1/27)
P(A | B
) = 8 / (8 + 3) = 8/11

Поэтому, если все трое друзей говорят, что идет дождь, то есть шанс 8/11, что на самом деле идет дождь.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Задачи из интервью Google Data Science вопрос 2

В одной коробке 12 красных и 12 черных карт. В другой коробке 24 красных и 24 черных карты. Вы хотите взять две карты случайным образом из одной из двух коробок, по одной карте за раз. С какой коробкой больше шансов получить карты одного цвета и почему?

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

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

Это означает, что в коробке с 12 красными и 12 черными теперь 11 красных и 12 черных карт. Поэтому ваши шансы вытащить еще одну красную карту равны 11 / (11 + 12) или 11/23.

В колоде с 24 красными и 24 черными будет 23 красных и 24 черных карты. Поэтому ваши шансы вытащить еще один красный цвет равны 23 / (23 + 24) или 23/47.

Так как 23/47 > 11/23, то со второй коробкой с большим количеством карт, большая вероятность вытащить две карты подряд одного цвета.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Задачи из интервью Google Data Science вопрос 3

Вы находитесь в казино и у вас две кости для игры. Каждый ваш бросок стоит 5 долларов, и вы выигрываете 10 долларов каждый раз, когда выпадает 5. Если вы играете до тех пор, пока не выиграете, а затем остановитесь, то какова ожидаемая выплата?

Ответ
Есть 36 возможных комбинаций с двумя кубиками.
Из 36 комбинаций есть 4 комбинации, в результате которых получается пять (см. рисунок). Это означает, что есть шанс 4/36 или 1/9 бросить 5.
Вероятность выигрыша 1/9 означает, что вы проиграете восемь раз и выиграете один раз (теоретически).
Следовательно, ваша ожидаемая выплата = потеря равна $ 10,00 * 1 – $ 5,00 * 9 = – $ 35,00.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Задачи из интервью Google Data Science вопрос 4

Вам выдали 40 карт четырех разных цветов: 10 зеленых, 10 красных, 10 синих и 10 желтых. Карты каждого цвета пронумерованы от одного до десяти. Две карты выбираются наугад. Найдите вероятность того, что выбранные карты не одинакового цвета и с разными номерами.

Поскольку эти события не являются независимыми, мы можем использовать правило:
P(A и 😎 = P(A) * P(B | A), которое также равно
P(не A и не 😎 = P(не A ) * P(не B | не A)


Например, допустим что первая карта желтая четверка. Тогда для второй карты справедливо следующее:

P(не 4 и не желтый) = P(не 4) * P(не желтый | не 4)
P(не 4 и не желтый) = (36/39) * (27/36)
P(не 4 и не желтый) = 0,692


Следовательно, вероятность того, что выбранные карты имеют разный номер и не одинаковый цвет, составляет 69,2%.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Задачи из интервью Google Data Science вопрос 5

Как можно определить, не является ли данная монета предвзятой / смещенной?

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

1. Нулевая гипотеза состоит в том, что монета не смещена, и вероятность одного из двух результатов подбрасывания должна быть равна 50% (р = 0,5). Альтернативная гипотеза состоит в том, что монета смещена и р != 0,5.

2. Подбросим монету 500 раз .

3. Рассчитаем z-статистику (если выборка меньше 30, мы бы рассчитали t-статистику).

4. Сравните с заданным уровнем допустимости верности нулевой гипотезы, обычно альфа = 5% (так как у нас два возможных значения в тесте, то 0,05 / 2 = 0,025).

5. Если уровень значимости (p-value) > альфа, то нулевая гипотеза не отбрасывается и монета считается не смещенной.
Если p-value < альфа, то нулевая гипотеза отклоняется в пользу предположения о смещенной монете.
Узнайте больше о проверке гипотез здесь.

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM