Проверьте свои навыки: 26 (больше) вопросов и ответов на собеседовании по Data Science

Сможете ли вы на все ответить?

Вот еще 26 вопросов и ответов на собеседование по науке о данных (вот первые 26). Вопросы организованы в виде общего потока от математики и статистики до алгоритмов для глубокого обучения и НЛП, с перемежающимися вопросами организации данных. Я бы рекомендовал просто взглянуть на вопрос и подумать над ответом, прежде чем продолжить проверку своего ответа.

Будь вы студент колледжа или опытный профессионал, каждый может потратить время, чтобы проверить (или освежить) свои навыки!

Сможете ли вы на все ответить?

1 | С какими формами предвзятости выбора вы можете столкнуться в данных?

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

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

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

Наконец, систематическая ошибка отсева - это форма ошибки отбора, вызванная потерей участников, не считающих участников исследования, которые не были завершены.

2 | Определите: коэффициент ошибок, точность, чувствительность / отзывчивость, специфичность, точность и F-рейтинг.

Где T - True, F - False, P - положительное, а N - отрицательное, каждый из которых обозначает количество элементов в матрице неточностей, которые удовлетворяют условию:

  • Частота ошибок: (FP + FN) / (P + N)
  • Точность: (TP + TN) / (P + N)
  • Чувствительность / отзыв: TP / P
  • Специфичность: TN / N
  • Точность: TP / (TP + FP)
  • F-Score: среднее гармоническое значение точности и запоминания.

3 | В чем разница между корреляцией и ковариацией?

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

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

4 | Почему A / B-тестирование эффективно?

A / B-тестирование - это проверка гипотез для рандомизированного эксперимента с двумя переменными A и B. Его цель - выявить любые изменения, скажем, на веб-странице, где клиентов из группы A приветствуют словами «Добрый день», а клиентов из группы B приветствуются «Добро пожаловать», чтобы увидеть, какой из них может увеличить продажи. A / B-тестирование эффективно, поскольку оно сводит к минимуму сознательную предвзятость - участники группы A не знают, что они находятся в группе A или что даже существует группа B, и наоборот. Это хороший способ получить данные о честной переменной. Однако A / B-тестирование сложно провести в любом контексте, кроме интернет-бизнеса.

5 | Как с помощью одного кубика сгенерировать случайное число от 1 до 7?

Одно из решений - дважды бросить кубик. Это означает, что существует 6 x 6 = 36 возможных исходов. Если исключить одну комбинацию (скажем, 6 и 6), получается 35 возможных исходов. Это означает, что если мы назначим пять комбинаций бросков (порядок имеет значение!) Одному числу, мы можем сгенерировать случайное число от 1 до 7.

Например, скажем, мы бросаем (1, 2). Поскольку мы (гипотетически) определили комбинации бросков (1, 1), (1, 2), (1, 3), (1, 4) и (1, 5) на число 1, случайно сгенерированное число будет быть 1.

6 | Различайте одномерный, двумерный и многомерный анализ.

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

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

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

7 | Что такое перекрестная проверка? Какие проблемы пытается решить? Почему это эффективно?

Перекрестная проверка - это метод оценки того, как модель обобщается на весь набор данных. Традиционный метод «поезд-тест-разделение», при котором часть данных случайным образом выбирается в качестве обучающих данных, а другая часть тестовых данных, может означать, что модель хорошо работает с некоторыми случайно выбранными фракциями тестовых данных и плохо работает с другими, выбранными случайным образом. тестовые данные. Другими словами, производительность не является показателем производительности модели, поскольку это случайность тестовых данных.

При перекрестной проверке данные разбиваются на n сегментов. Модель обучается на n- 1 сегментах данных и тестируется на оставшемся сегменте данных. Затем модель обновляется и обучается на другом наборе из n -1 сегментов данных. Это повторяется до тех пор, пока модель не прогнозирует значения для всех данных (результаты которых усредняются). Перекрестная проверка полезна, поскольку дает более полное представление о производительности модели для всего набора данных.

8 | Что означает «наивный» в «Наивном Байесе»?

Наивный алгоритм Байеса основан на теореме Байеса, которая описывает вероятность события, основываясь на предварительном знании условий, которые могут быть связаны с вентиляцией. Алгоритм считается «наивным», потому что он делает множество предположений, которые могут быть или не быть правильными. Вот почему при правильном использовании он может быть очень мощным - он может обойти знания, которые должны найти другие модели, потому что предполагает, что это правда.

9 | Какие ядра есть в SVM?

В SVM есть четыре типа ядер:

  • Линейное ядро
  • Полиномиальное ядро
  • Радиальное базовое ядро
  • Сигмовидное ядро

10 | Как можно решить проблему переобучения в деревьях решений?

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

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

11 | Объясните и приведите примеры совместной фильтрации, фильтрации содержимого и гибридной фильтрации.

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

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

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

12 | В чем разница между бэггингом и бустингом в ансамблях?

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

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

13 | В чем разница между жестким и мягким голосованием в ансамблях?

Жесткое голосование - это когда окончательная классификация каждой модели (например, 0 или 1) суммируется, возможно, с помощью среднего значения или метода.

Мягкое голосование - это когда окончательные вероятности каждой модели (например, 85% уверенности в классификации 1) суммируются, скорее всего, через среднее значение.

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

14 | У вас есть 5 ГБ оперативной памяти на вашем компьютере, и вам необходимо обучить вашу модель на наборе данных 10 ГБ. Как вы с этим справляетесь?

Для SVM подойдет частичная подгонка. Набор данных можно разделить на несколько наборов данных меньшего размера. Поскольку SVM - алгоритм с низкими вычислительными затратами, он может быть лучшим случаем в этом сценарии.

В случае, если данные не подходят для SVM, нейронная сеть с достаточно маленьким размером пакета может быть обучена на сжатом массиве NumPy. NumPy имеет несколько инструментов для сжатия больших наборов данных, которые интегрированы в распространенные пакеты нейронных сетей, такие как Keras / TensorFlow и PyTorch.

15 | Теория глубокого обучения существует довольно давно, но только недавно она приобрела большую популярность. Как вы думаете, почему в последние годы произошло такое резкое развитие глубокого обучения?

Развитие глубокого обучения быстро набирает обороты, потому что в этом появилась необходимость совсем недавно. Недавние улучшения в переходе от физического опыта к онлайн-опыту означают, что можно собрать больше данных. Из-за перехода к онлайн-сервису у глубокого обучения появляется больше возможностей для увеличения прибыли и удержания клиентов, что невозможно, скажем, в обычных продуктовых магазинах. Стоит отметить, что две самые большие модели машинного обучения на Python (TensorFlow и PyTorch) были созданы крупными корпоративными компаниями Google и Facebook. Кроме того, развитие графического процессора означает, что модели можно обучать быстрее.

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

16 | Как бы вы инициализировали веса в нейронной сети?

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

17 | Каковы последствия неправильной установки точной скорости обучения?

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

18 | Объясните разницу между эпохой, серией и итерацией.

  • Эпоха: представляет собой одно прохождение всего набора данных (всего, что входит в обучающую модель).
  • Пакет: поскольку передача всего набора данных в нейронную сеть за один раз требует больших затрат вычислительных ресурсов, набор данных делится на несколько пакетов.
  • Итерация: количество запусков пакета в каждую эпоху. Если у нас есть 50 000 строк данных и размер пакета 1000, то каждая эпоха будет запускать 50 итераций.

19 | Каковы три основных слоя сверточной нейронной сети? Как они обычно складываются?

Обычно сверточная нейронная сеть состоит из четырех разных слоев:

  • Сверточный слой: слой, который выполняет сверточную операцию, которая создает несколько окон изображений, обобщая изображение.

  • Слой активации (обычно ReLU): вносит нелинейность в сеть и преобразует все отрицательные пиксели в ноль. Результатом становится исправленная карта объектов.
  • Слой пула: операция понижающей выборки, которая уменьшает размерность карты объектов.

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

20 | Что такое слой исключения и как он помогает нейронной сети?

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

21 | Что делает недавно разработанную модель BERT в упрощенном и фундаментальном масштабе лучше традиционных моделей НЛП?

Традиционным моделям НЛП для ознакомления с текстом ставится задача предугадать следующее слово в предложении, например: «собака» в «Идет дождь, кошки и». Другие модели могут дополнительно обучать свои модели предсказанию предыдущего слова в предложении с учетом контекста после него. BERT случайным образом маскирует слово в предложении и заставляет модель предсказывать это слово как с контекстом до, так и после него, например: «дождь» в «Это _____ кошки и собаки».

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

22 | Что такое распознавание именованных сущностей?

NER, также известный как идентификация сущностей, фрагменты сущностей или извлечение сущностей, представляет собой подзадачу извлечения информации, которая пытается найти и классифицировать именованные сущности, упомянутые в неструктурированном тексте, по таким категориям, как имена, организация, местоположения, денежные значения, время и т. Д. NER пытается разделить слова, которые написаны одинаково, но означают разные вещи, и правильно идентифицировать сущности, которые могут иметь под-сущности в своем названии, например, «Америка» в «Банке Америки».

23 | Вам предоставляется большой набор твитов, и ваша задача - предсказать, являются ли они положительными или отрицательными. Объясните, как вы будете предварительно обрабатывать данные.

Поскольку твиты полны хэштегов, которые могут содержать ценную информацию, первым шагом будет извлечение хэштегов и, возможно, создание набора функций с горячим кодированием, в котором значение для твита равно «1», если у него есть хэштег и «0», если это не так. То же самое можно сделать с символами @ (какая бы учетная запись ни была направлена ​​на твит, может иметь значение). Твиты также представляют собой сжатые записи (поскольку существует ограничение на количество символов), поэтому, вероятно, будет много целенаправленных орфографических ошибок, которые необходимо будет исправить. Возможно, будет полезно и количество орфографических ошибок в твите - возможно, в сердитом твите будет больше слов с орфографическими ошибками.

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

Затем данные будут лемматизированы и токенизированы, и есть не только необработанный текст для ввода в модель, но и знания о хэштегах, @s, орфографических ошибках и пунктуации, которые, вероятно, будут способствовать точности.

24 | Как вы можете найти сходство между двумя абзацами текста?

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

25 | В корпусе из N документов один случайно выбранный документ содержит всего T терминов. Термин «привет» встречается в этом документе K раз. Каково правильное значение произведения TF (Term Frequency) и IDF (Inverse Document Frequency), если термин «привет» встречается примерно в одной трети всех документов?

Формула для частоты термина, если K / T, и формула для IDF - это логарифм общего количества документов по количеству документов, содержащих термин, или логарифм от 1 до 1/3, или логарифм 3. Следовательно, TF- Значение IDF для 'hello' - K * log (3) / T.

26 | Есть ли универсальный набор стоп-слов? Когда вы увеличите «строгость» стоп-слов, а когда - более снисходительно к стоп-словам? (Снижение стоп-слов означает уменьшение количества стоп-слов, исключенных из текста).

Есть общепринятые стоп-слова, хранящиеся в библиотеке NLTK в Python, но в определенных контекстах они должны быть удлинены или сокращены. Например, если дан набор данных твитов, стоп-слова должны быть более мягкими, потому что каждый твит не имеет большого содержания для начала. Следовательно, больше информации будет упаковано в краткое количество символов, а это означает, что может быть безответственным отбрасывать то, что мы считаем стоп-словами. Однако, если дать, скажем, тысячу коротких рассказов, мы, возможно, захотим более жестко относиться к стоп-словам, чтобы не только сэкономить время вычислений, но и упростить различие между каждым из рассказов, которые, вероятно, все будут использовать много стоп-слов несколько раз.

Спасибо за прочтение!

Сколько вы получили правильно? Эти вопросы касаются статистики, алгоритмов, глубокого обучения, НЛП, а также организации и понимания данных - это должно быть хорошим показателем вашего знакомства с концепциями науки о данных.

Если вы еще этого не сделали, ознакомьтесь с еще 26 вопросами и ответами на собеседование по науке о данных здесь.