Читать нас в Telegram

Собеседование по Data Science: что нужно знать и где это изучить

Рубрика: Переводы
,
11658

Рассказывает Leon Chlon

Я работал в консалтинговом агентстве, когда Deliveroo предложили мне позицию Data Science Manager. Но через пару месяцев отозвали её — сразу после того, как я ушёл из агентства. Не имея больших денежных запасов, быть безработным — непозволительная роскошь. Я хочу поделиться тем, как мне удалось пройти собеседование по Data Science и получить целых два предложения от Facebook. Надеюсь, что эта статья вам поможет. Особенно, если вы оказались в такой же непростой ситуации.

Ключ — в самоорганизации

Я проходил собеседования в Google (и DeepMind), Uber, Facebook, Amazon. Все на должность Data Scientist, и состояли они в основном из таких тем:

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

Чтобы хорошо подготовиться, записывайте всё, что изучаете. Я вёл конспекты в Notion. Каждый день просматривал материалы. Особенно важно так делать перед самым собеседованием, чтобы загрузить ключевую информацию в свою оперативную память. И это помогало — я отвечал на вопросы без лишнего мычания и траты времени.

Разработка программного обеспечения

Не на каждом собеседовании по Data Science вас будут допрашивать о сложности алгоритмов, но везде попросят написать код. Data Science — это ведь не какая-то одна задача. Это ансамбль из нескольких видов деятельности, включая разработку программ. И среди конкурентов — ребята, разбирающиеся в тонкостях написания оптимального кода. Поэтому рекомендую посвящать хотя бы 1–2 часа в день, чтобы разобраться в таких темах:

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

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

Прикладная статистика

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

Я изучал следующие темы, и можете не сомневаться — вас прокатят по каждой из них:

Также мне помогли два бесценных ресурса:

Машинное обучение

А теперь зверь тысячелетия — область настолько обширная, что можно запросто в ней потеряться. Материалы о прикладной статистике послужат хорошей основой для машинного обучения (которое, по сути, и является прикладной статистикой, только на языке линейной алгебры). Вот список статей на темы, которые из раза в раз всплывали на собеседованиях по Data Science.

Метрики классификации

Метрики регрессии

Дилемма смещения-дисперсии, переобучение/недообучение

Выбор статистической модели

Сэмплирование

Проверка гипотез

Хочу подчеркнуть важность знаний о статистической мощности. Очень нужная тема для A/B тестирования.

Регрессионные модели

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

Модели кластеризации

Модели классификации

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

Обработка и визуализация данных

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

На одном из моих собеседований по Data Science в эти задачи входил поиск датасета, его очистка, визуализация, отбор признаков, построение и оценка модели. Всё это нужно было сделать в течение одного часа. Было сложно, но тренировки на протяжение нескольких недель даром не прошли.

Организация данных

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

Профайлинг данных

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

Визуализация данных

Тут нас интересует внешний вид распределения. Для этого пригодится библиотека seaborn. Если диаграмма размаха из прикладной статистики прошла мимо вас — самое время изучить её, поскольку вам нужно научиться видеть погрешности. Позже поговорим о том, что с ними делать. Гистограммы и графики ядерной оценки плотности тоже помогают оценить характеристики распределения, после чего мы можем определить взаимосвязи между ними.

Обработка null-значений, синтаксических ошибок, дубликатов столбцов и строк

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

Синтаксические ошибки возникают, когда данные в датасет добавлялись вручную, например через форму. Из-за этого можно получить ненужные уровни категорий, как «Горячий», «ГоРяЧий» и «горячий/n» и т. д.

Напоследок о дубликатах. Повторяющиеся столбцы бесполезны, а вот повторение строк искажает баланс данных в сторону одного класса.

Стандартизация и нормализация

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

***

Больше всего уверенности в себе мне добавило не зубрение, а хорошее понимание материала. Все затронутые здесь темы — это не какая-то сверхнаука в сферическом вакууме, которую могут понять только избранные, а просто инструменты для интерпретации данных и создания крутых моделей. Чтобы понять это, мне пришлось провалить немало собеседований. Желаю удачи в вашем приключении!

Адаптированный перевод статьи «The Data Science Interview Blueprint»