Чтобы стать Data Scientist'ом, сконцентрируйтесь на программировании
Продолжаю разбираться с тем, как можно стать 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, это самый сложный курс по математике, который я когда-либо видел. Мне кажется, что мое время может быть с большей пользей потрачено для чего-то другого. Возможно, стоит учить основы когда они будут нужны для работы? Или, возможно, вы порекомендуете определенные области теории вероятности, на которых имеет смысл сконцентрироваться? Я бы хотел заняться собственным проектом (с данными от фитнес трекера или блокчейном) и приостановить изучение теории вероятностей.
Ответ. Кажется, вы сами знаете ответ на ваш вопрос: время действительно может быть потрачено с большей пользой другим способом!
Сделайте так, чтобы ваш проект мотивировал вас, и учите математику тогда, когда она понадобится. Такой подход хорош по трем причинам:
- Для большинства людей лучшая мотивация для изучения чего-либо - это наличие проблемы, которую нужно решить.
- Реально проверить, понимаете вы что-то или нет, можно только путем практического использования этих знаний и создания программ на их основе.
- Изучая теорию по мере необходимости, вы учите только то, что действительно нужно, и не тратите время на вещи, которые могут оказаться бесполезны.
Единственное исключение: если вы хотите стать профессором математики или работать в аналитическом центре (большую часть времени в аспирантуре по математике моей целью было стать профессором, что привлекало меня, но в то время я абсолютно не подозревала о большом количестве удивительных и захватывающих мест работы, где нужна математика). Также иногда вам нужно освежить математику перед собеседованием.
Вопрос 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.
