Почему вы ещё не готовы работать как учёный по данным (пока)

Готовитесь к собеседованию на должность «учёный по данным»? Или получили отказ? Читайте о требованиях компаний и узнайте, какие навыки подтянуть.

Автор статьи стал наставником стартапа в области Data Science и узнал, что получить обратную связь по поводу заявления о приёме на работу или собеседования по сути невозможно.

Почему учёный по данным не получает обратную связь от работодателей

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

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

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

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

Причина 1: навыки Python для Data Science

Как правило, обязанности в области науки о данных основываются на Python, поэтому остановимся на них. Инструменты отличают новичков от готовых к работе профессионалов, когда дело доходит до Python для DS. Смело берите на вооружение эти отличия, если хотите создавать проекты, которые привлекают внимание работодателей.

Чтобы заставить себя подтянуть теорию и практику Data Science, используйте это в нескольких проектах, если ещё не сделали так:

  • Исследование данных. Пусть такие функции pandas, как .corr(), scatter_matrix(), .hist() и .bar() вертятся на кончике вашего языка. Неизменно старайтесь визуализировать данные с помощью PCA или t-SNE, с использованием функции sklearn PCA и TSNE.
  • Отбор признаков. В 90 % случаев у набора данных будет больше признаков, чем нужно. Это приводит к чрезмерному увеличению времени тренировки и повышению риска переобучения. Познакомьтесь с базовыми методами фильтрации (посмотрите функции VarianceThreshold и SelectKBest в scikit-learn) и более сложными методами выбора объектов на основе моделей (см. SelectFromModel).
  • Поиск гиперпараметра для оптимизации модели. Определённо выясните, что делает GridSearchCV, и как он работает. Аналогично для RandomSearchCV. Чтобы в самом деле выделиться, попробуйте поэкспериментировать с BayesSearchCV библиотеки skopt. И узнаете, как применить байесовскую оптимизацию к поиску гиперпараметров.
  • Конвейеры. Используйте библиотеку конвейеров sklearn, чтобы объединить их предварительную обработку, выбор объектов и этапы моделирования. Дискомфорт от pipeline – верный знак для учёного по данным, что стоит получше ознакомиться с этим инструментарием моделирования.

Причина 2: знание вероятности и статистики

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

  • Теорема Байеса. Это основополагающая опора теории вероятностей, и постоянно появляется в интервью. Попрактикуйтесь в решении некоторых базовых задач по теореме Байеса и прочитайте первую главу этой знаменитой книги, чтобы получить чёткое представление о происхождении и значении правила. Бонус: это на самом деле весело читать!
  • Базовая вероятность. Будьте в состоянии ответить на такие вопросы.
  • Оценка модели. Например, в задачах классификации большинство новичков по умолчанию используют точность модели как метрику, и это ужасный выбор. Познакомьтесь с функциями sklearn precision_score, rec_score, f1_score и roc_auc_score и с теорией, которая стоит за ними. Для задач регрессии также важно понять, почему будете использовать mean_squared_error, а не mean_absolute_error (и наоборот). На самом деле стоит потратить время на проверку метрик оценки модели, перечисленных в официальной документации sklearn.

Причина 3: умение разрабатывать программное обеспечение

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

  • Контроль версий. Вам стоит знать, как использовать git и взаимодействовать с удалёнными репозиториями GitHub с помощью командной строки. Если вы этого не умеете, предлагаем начать с урока.
  • Веб-разработка. Некоторым компаниям нравится, когда учёный по данным получает данные, которые хранятся в веб-приложении, или через API. Важно освоиться с основами веб-разработки. Лучший способ сделать это – изучить Flask.
  • Веб-скрапинг. В некотором роде связан с веб-разработкой. Иногда приходится автоматизировать сбор данных путём парсинга контента живых веб-сайтов. Два подходящих инструмента для рассмотрения – BeautifulSoup и Scrapy.
  • Чистый код. Узнайте, как использовать строки документации. Не злоупотребляйте встроенными комментариями. Разбейте функции на функции поменьше. Намного меньше. В теле функции допускается не больше 10 строк кода. Давайте функциям понятные, информативные имена (function_1 – не информативное имя). Следуйте питоновскому соглашению и называйте переменные с подчеркиванием like_this, а не LikeThis или likeThis. Не пишите модули Python (файлы .py), в которых больше 400 строк кода. Назначайте каждому модулю чёткую цель (например, data_processing.py, Foregnet.py). Узнайте, что делает блок кода if name == '__main__':, и почему это важно. Используйте list comprehension. Не переусердствуйте с циклами for. Добавьте файл README в свой проект.

Причина 4: учёный по данным без делового чутья

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

Поэтому полезно выйти за пределы технических способностей и освоить дополнительные навыки:

  • Делать то, что хотят люди. Люди в «режиме обучения Data Science» следуют предсказуемой последовательности шагов: импортируют данные, исследуют, очищают данные, визуализируют, моделируют данные и оценивают модель. Это нормально, если сосредотачиваться на изучении новой библиотеки или техники. Но использовать автопилот – вредная привычка в бизнес-среде, где всё, что вы делаете, стоит компании времени (денег). Вам захочется научиться думать с точки зрения бизнеса и уметь лучше использовать время, чтобы внести вклад в команду и компанию. Для этого определите, какие вопросы решат ваши Data Science проекты, до начала работы над ними. Это поможет не увлечься неподходящими задачами, которые становятся частью «стандартного» рабочего процесса в противном случае. Добивайтесь максимума практичности вопросов. После завершения проекта, подумайте, насколько хорошо вы смогли на них ответить.
  • Задавать правильные вопросы. Компании нанимают людей, которые способны держать в голове целостную картину, пока настраивают свои модели. И задают себе вопросы типа: «Я создаю это, потому что это будет по праву полезно команде и компании, или потому что это крутой вариант использования моего любимого алгоритма?» и «какой ключевой бизнес-показатель я оптимизирую, и есть ли способ сделать это лучше?».
  • Объяснять результаты. Руководству нужно, чтобы вы рассказали, какие продукты хорошо продаются, или какие пользователи перешли к конкурентам и почему. Но они не знают и знать не хотят, что такое кривая точности-полноты или насколько сложно было избежать переобучения модели. По этой причине главным навыком будет способность донести результаты и последствия до нетехнической аудитории. Попробуйте создать проект и объяснить другу, который не изучал математику со старшей школы. Подсказка: в объяснении не упоминайте имена алгоритмов или не ссылайтесь на настройку гиперпараметра. Простые слова – лучшие слова.

Заключение

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

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

Уже пробовались на должность «учёный по данным»? Поделитесь опытом!

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ

matyushkin
07 апреля 2020

ТОП-15 книг по Python: от новичка до профессионала

Книги по Python (и связанным с ним специальным темам) на русском языке. Рас...
admin
14 июля 2017

Пишем свою нейросеть: пошаговое руководство

Отличный гайд про нейросеть от теории к практике. Вы узнаете из каких элеме...