Продолжаю разбираться с тем, как можно стать Data Scientist’ом. Подготовил перевод статьи “To become a data scientist, focus on codingРейчел Томас из fast.ai. Рейчел занимается глубокими нейронными сетями, она исследователь в University of San Francisco Data Institute. Раз в неделю она отвечает на вопросы о Data Science, которые приходят на fast.ai. В этой статье содержатся ответы на два вопроса о том, что лучше делать, чтобы стать Data Scientist’ом.

Вопрос 1. У меня есть степени бакалавра и магистра в аэрокосмической технике и меня приняли на data science bootcamp этим летом. Я трачу по 15 часов в неделю на курс 6.041 Introduction to Probability от MIT на edx.org, это самый сложный курс по математике, который я когда-либо видел. Мне кажется, что мое время может быть с большей пользей потрачено для чего-то другого. Возможно, стоит учить основы когда они будут нужны для работы? Или, возможно, вы порекомендуете определенные области теории вероятности, на которых имеет смысл сконцентрироваться? Я бы хотел заняться собственным проектом (с данными от фитнес трекера или блокчейном) и приостановить изучение теории вероятностей.

Ответ. Кажется, вы сами знаете ответ на ваш вопрос: время действительно может быть потрачено с большей пользой другим способом!

Сделайте так, чтобы ваш проект мотивировал вас, и учите математику тогда, когда она понадобится. Такой подход хорош по трем причинам:

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

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

Вопрос 2. Я сейчас учусь на магистерской программе по Data Science. Я не очень хорошо разбираюсь в программировании, машинном обучении и статистике. Data Science слишком обширная область, и друзья советуют мне сконцентрироваться на одном из направлений. Сейчас я пробую все и становлюсь мастером на все руки, но нигде не достиг профессионализма. Что делать, чтобы выбрать специализацию?

Ответ. Нет ничего страшного в том, чтобы быть мастером на все руки в Data Science; в некотором смысле именно это и требуется от Data Scientist’ов. Пока вы выделяете большую часть времени на написание кода для реальных проектов, вы на правильном пути.

Мои приоритеты для начинающих Data Scientist’ов:

  • Сконцентрируйтесь на Python (включая Numpy, Pandas и Jupyter notebooks).
  • Попытайтесь сфокусироваться на одном основном проекте. Расширьте что-нибудь, что вы сделали в университете. Это может быть сложно, если вы работали с различными наборами данных из разных предметных областей. При самостоятельном изучении один из основных рисков - перескакивание с одного тьюториала на другой на разных сайтах, разбираясь только поверхностно. Выберите одно соревнование Kaggle, собственный проект, или расширение университетского проекта, и работайте только над этим. Я сама несколько раз продолжала улучшать университетские проекты в течение нескольких месяцев после их окончания, потому что было полностью поглощена ими. Это отличный способ обучения.
  • Начните с ансамблей деревьев решений (случайный лес или градиентный бустинг) на структурированных наборах данных. У меня противоречивые чувства в этой области. С одной стороны, это можно реализовать на Python с использованием sklearn. Но все же я думаю, что R лучше работает со структурированными данными и категориальными переменными. Однако, если вы хотите выучить только один язык программирования, то Python - это лучший выбор. Кроме того, большинство не может сконцентрироваться на изучении двух языков одновременно.
  • После этого перейдите к изучению глубоких нейронных сетей используя библиотеку Keras на Python. Как утверждает Эндрю Ын, глубокие нейронные сети - это “новое электричество” и очень интересная и важная область для работы.

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

Обратите внимание, что это рекомендации для Data Scientist’ов, а не для Data Engineer’ов. Инженеры отвечают за работу алгоритмов в продуктивной эксплуатации и им нужен другой набор навыков, например, Spark и HDFS.