Текст книги "Data Science для карьериста"
Автор книги: Жаклин Нолис
Жанр: Программирование, Компьютеры
Возрастные ограничения: +16
сообщить о неприемлемом содержимом
Текущая страница: 9 (всего у книги 38 страниц) [доступный отрывок для чтения: 12 страниц]
В этом разделе мы подробно рассмотрим два примера проектов: от появления идеи до проведения анализа и получения итогового результата. Для этого мы используем реальные проекты, принадлежащие авторам книги: создание веб-приложения для поиска наиболее подходящих вакансий для фрилансеров, занимающихся работой с данными, и обучение нейронных сетей на наборе данных о «запрещенных» автомобильных номерах.
Эмили Робинсон
Вопрос
Будучи начинающим дата-сайентистом, я заинтересовалась фрилансом как одним из способов дополнительного заработка. Фриланс – это выполнение проектов для кого-то, у кого вы не работаете в штате, будь то человек или крупная компания. Срок выполнения проектов может занимать от нескольких часов до нескольких месяцев полной занятости. Множество вакансий для фрилансеров можно найти на таких сайтах, как UpWork, но поскольку сфера Data Science очень обширна, вакансии в этой категории могут быть абсолютно разные, от веб-разработки до анализа в Excel и обработки терабайта данных на естественном языке. Я решила проверить, удастся ли мне помочь фрилансерам выбрать среди тысячи вакансий ту, которая им подойдет лучше всего.
Анализ
Чтобы собрать данные, я использовала API сайта UpWork для получения открытых вакансий и профилей всех, кто находится в категории «Data Science и аналитика». В итоге у меня получилось 93 000 фрилансеров и 3000 вакансий. Хотя благодаря API доступ к данным стал относительно простым (поскольку не нужно было скрейпить), мне все равно пришлось создать функции для выполнения сотен вызовов API, делать обработку, когда эти вызовы не выполнялись, а затем преобразовать данные так, чтобы их можно было использовать. Зато так как данные не были готовы изначально, проект получился уникальным, а не как в случае с Kaggle, когда сотни людей работают над одним и тем же.
Получив хорошие, качественные данные, я провела эксплараторный анализ и изучила, как уровень образования и страна влияют на размер заработка фрилансеров. Кроме того, я составила график корреляции перечисленных фрилансерами навыков, на основании которого можно выделить различные группы: веб-разработчики (PHP, jQuery, HTML и CSS), специалисты по финансам и бухгалтерскому учету (финансовый учет, бухгалтерский учет и финансовый анализ), а также специалисты по сбору данных (ввод данных, лидогенерация, датамайнинг и веб-скрейпинг) наряду с «традиционным» набором навыков в Data Science (Python, машинное обучение, статистика и анализ данных).
Наконец, я придумала шкалу баллов для оценки сходства между профилем кандидата и описанием вакансии и объединила эту шкалу с совпадением навыков (как в резюме, так и в вакансии). В результате получился балльный счет для совпадения фрилансера и работы.
Готовый продукт
Я не стала публиковать результаты в блоге, а вместо этого создала интерактивное веб-приложение, в котором можно было ввести текст своего профиля, указать навыки и требования к вакансии (например, минимальное количество отзывов о работодателе и время, которое займет работа). В результате доступные вакансии будут отфильтрованы в соответствии с этими требованиями и отсортированы по тому, насколько они подходят пользователю.
Я не позволила лучшему стать врагом хорошего; всегда есть много способов усовершенствовать проект. Я добавила вакансии всего один раз; теперь, спустя четыре года, ни одна из них больше не доступна, хотя приложение все еще работает. Чтобы оно было актуальным в долгосрочной перспективе, пришлось бы ежедневно подбирать вакансии и обновлять списки. Я также могла бы создать более сложный алгоритм сопоставления, ускорить начальное время загрузки приложения и сделать интерфейс привлекательнее. Но, несмотря на эти ограничения, я все же достигла нескольких важных целей. Проект показал, что я могу сделать что-то, с чем другие пользователи смогут взаимодействовать, а не ограничиваться статическим анализом, который хранится у меня на ноутбуке. Этот проект нашел свое применение в реальной жизни: благодаря ему фрилансеры могли найти работу. Наконец, я прошла через полный цикл DS-проекта: сбор данных, их очистку, выполнение эксплораторного анализа и получение результата.
Жаклин Нолис
Вопрос
По мере того как я росла как дата-сайентист, меня всегда удивляли радостные посты в блогах, где люди рассказывали о том, как обучали нейронные сети генерировать новые названия групп, покемонов и странные описания кулинарных рецептов. Я считала эти проекты великолепными, но не знала, как делать такое самостоятельно! Однажды я вспомнила, как слышала о датасете с автомобильными номерами, которые не приняли в Аризоне из-за их неблагозвучности. Будь у меня этот датасет, он бы идеально подошел, чтобы наконец научиться создавать нейронные сети, – я могла бы создавать собственные «неприличные» автомобильные номера (рис. 4.2)!
Рис. 4.2. Пример выходных данных нейронной сети генератора «неприличных» автомобильных номеров
Анализ
Отправив в Министерство транспорта штата Аризона запрос о предоставлении архивных документов, я получила список из тысяч «неприличных» автомобильных номеров. Тогда я ничего не знала о нейронных сетях, поэтому начала гуглить в поисках соответствующих постов. Будучи заядлым пользователем R, я была на седьмом небе от счастья, наткнувшись на пакет Keras от RStudio, который можно было использовать для создания нейронных сетей на R.
Я загрузила данные в R, а затем проверила пример пакета Keras от RStudio для генерации текста с помощью нейронных сетей. Я внесла изменения в код, чтобы обеспечить возможность работы с данными; пример RStudio был предназначен для генерации последовательностей длинного текста, но мне хотелось обучать модель на семизначных номерных знаках. Это означало создание нескольких точек датасета для обучения из каждого автомобильного знака (одна точка данных для прогнозирования каждого символа в номерном знаке).
Затем я обучила модель нейронной сети, хотя поначалу она не сработала. Я отложила проект и через месяц, вернувшись к нему, поняла, что данные обрабатываются неправильно. Когда я исправила эту проблему, результаты, созданные нейронной сетью, были фантастическими. В итоге, несмотря на мои незначительные изменения примера от RStudio, я продвинулась в создании и использовании нейронных сетей.
Готовый продукт
Я рассказала о своем проекте в блоге, подробно описав, как я получила данные, как они обрабатываются для нейронной сети и как я изменила пример кода RStudio, чтобы он работал как положено. Пост был написан преимущественно в стиле: «Я в нейронных сетях новичок, но вот чему я научилась»; я не делала вид, будто уже знаю, как все это работает. В посте я разместила картинку, содержавшую выданный моей нейронной сетью текст и выглядевшую как номерной знак из Аризоны. Я также выложила код на GitHub. С тех пор как я написала этот пост и сделала код доступным, многие внесли в него свои изменения, чтобы создать собственные забавные нейронные сети. То, что я узнала, работая над этим нелепым проектом, в конечном итоге помогло мне создать высокоэффективные модели машинного обучения для важных консалтинговых услуг. Если изначальная работа кажется вам несерьезной, это не означает, что в ней нет никакой ценности!
4.4. Интервью с Дэвидом Робинсоном, дата-сайентистомДэвид Робинсон (David Robinson) является соавтором (с Джулией Силдж) пакета tidytext на R и книги Text Mining with R, выпущенной издательством O’Reilly. Также он написал электронную книгу Introduction to Empirical Bayes: Examples from Baseball Statistics and the R packages broom and fuzzyjoin и создал пакеты broom и fuzzyjoin для R. Дэвид окончил Принстонский университет со степенью кандидата наук в области количественной и вычислительной биологии. В своем популярном блоге varianceexplained.org Робинсон пишет о статистике, анализе данных, образовании и программировании на R.
Как вы начали вести блог?
Впервые я завел блог, когда начал искать работу перед получением кандидатской степени, так как осознал, что в интернете нет практически ничего, что демонстрировало бы мои навыки по программированию и статистике. Начав вести блог, я боялся, что напишу несколько постов, уже практически сформировавшихся в голове, и после этого мои идеи иссякнут. Однако я удивился, когда понял, что у меня постоянно появляются идеи для публикаций: датасеты, которые я собираюсь проанализировать, мысли, которыми мне хочется поделиться, методы, которым я хочу научить других. С тех пор я умеренно и систематически веду блог уже четыре года.
Есть ли какие-то особые возможности, которые вы получили благодаря онлайн-публикациям?
Свою первую работу я получил благодаря одному из оставленных мной сообщений в интернете. В Stack Overflow заинтересовались моим комментарием, который я оставил на их статистическом сайте, и они приняли меня на работу. Я оставил его несколько лет назад, но некоторые из инженеров компании заметили его и были впечатлены. Благодаря этому опыту я убедился в том, что публичная работа полезна. Иногда ее преимущества могут давать результат через месяцы или даже годы и дарить возможности, о которых нельзя было даже мечтать.
Как вы считаете, есть ли люди, которым публичная работа была бы особенно полезна?
Больше всего такая работа пригодится тем, чье резюме может недостаточно отражать навыки в Data Science, а также тем, у кого нет стандартной базы в виде диплома или опыта работы в сфере DS. Если у кандидата слабое резюме, мне сложно оценить, справится ли он со своими обязанностями. Мой любимый способ оценивать кандидата – просматривать анализ, который он проводил онлайн. Если у меня есть возможность увидеть созданные кем-то графики, прочесть, как они создавались, как проводился разбор данных, я начинаю понимать, подходит ли человек на выбранную должность.
Как со временем изменилось ваше мнение о ценности публичной деятельности?
Я привык относиться к проектам так, чтобы стабильно развиваться, продолжая над чем-то работать. В аспирантуре моя идея была бесполезной, но потом она превратилась в код, черновик, чистовик и, наконец, в опубликованную статью. Я считал, что со временем моя работа становилась все более ценной.
С тех пор я понял, что заблуждался. Все, что есть у вас в компьютере, на какой бы стадии готовности оно ни было, ничего не стоит. Если ваша работа не увидела свет, силы потрачены впустую, ведь гораздо более ценно то, что доступно многим. Я понял это благодаря нескольким статьям, которые подготовил в аспирантуре, но так и не опубликовал. Я вложил в них много труда, но мне все время казалось, что они еще не совсем готовы. Спустя годы я забыл, что в них было: я не могу их найти и они не принесли миру никакой пользы. Если бы в процессе работы я написал пару сообщений в блоге, отправил пару твитов и, возможно, сделал действительно простой пакет с открытым исходным кодом, все это добавило бы ценности моим усилиям.
Как вы придумываете идеи для своих постов о Data Science?
Я выработал привычку: каждый раз, когда вижу датасет, скачиваю его и быстро просматриваю, запускаю пару строк кода, чтобы прочувствовать данные. Так можно лучше понимать Data Science: поработав над достаточным количеством проектов, вы начнете понимать, в каких фрагментах данных может быть скрыто что-то интересное, а какие, возможно, даже не стоит обрабатывать.
Мой вам совет: когда у вас появится возможность проанализировать данные – даже если они не относятся к вашей текущей работе или вы считаете, что вас это не заинтересует, – потратьте буквально несколько минут на их просмотр и оцените, что там может быть интересного. Выберите датасет, решите, сколько времени готовы потратить, проанализируйте все, что сможете, а затем опубликуйте результаты. Ваш пост может быть неидеальным, вы можете найти не все, на что рассчитывали, и ответить не на все вопросы, на которые хотели, но, задавшись целью писать статью о каждом наборе данных, вы сможете вырабатывать эту привычку.
Ваш последний совет новичкам и джуниорам в Data Science.
Не беспокойтесь о том, что нужно быть в курсе новейших технологий. Когда вы начинаете работать в сфере Data Science и МО, возникает соблазн начать с глубокого обучения или других продвинутых методов. Важно помнить, что они были разработаны для решения некоторых наиболее сложных задач в этой области и сейчас вам вовсе не обязательно применять их для решения тех задач, с которыми вы столкнетесь как начинающий специалист. Начните с простого преобразования и визуализации данных, программирования с применением широкого набора библиотек, используйте статистические методы, такие как проверка гипотез, классификация и регрессия. Для начала следует освоить эти методы и только потом переходить к передовым технологиям.
Итоги• Наличие портфолио в репозитории GitHub и блоге может помочь вам получить работу.
• Есть много источников, где можно найти хорошие датасеты для стороннего проекта; главное – выбрать что-то интересное и нестандартное.
• Не обязательно посвящать блог только сторонним проектам; можно также поделиться учебными пособиями или рассказать о своем опыте, полученном в буткемпе или во время конференции.
Материалы к главам 1–4
КнигиPractical Data Science with R, 2nd ed., Nina Zumel and John Mount (Manning)
Эта книга представляет собой введение в Data Science, где в качестве основного инструмента используется язык R. Она станет отличным дополнением к нашей книге, потому что в ней гораздо глубже рассматриваются технические аспекты работы. Она объясняет, как выбирать датасеты, придумывать к ним правильные вопросы и интерпретировать результаты.
Doing Data Science: Straight Talk from the Frontline, Cathy O’Neil and Rachel Schutt (O’Reilly)
Это еще одно введение в Data Science со смесью теории и практики. Это не набор кейсов: книга широко рассматривает сферу Data Science и пытается подойти к ней с разных сторон.
R for Everyone, 2nd ed., Jared Lander, и Pandas for Everyone, Daniel Chen (Addison-Wesley Data and Analytics)
Это две книги из серии Addison-Wesley Data and Analytics. Они охватывают использование R и Python (через pandas) от базовых функций до расширенного анализа и решения DS-задач. Эти книги станут отличным ресурсом для тех, кто нуждается в помощи по этим темам.
Think Like a Data Scientist: Tackle the Data Science Process Step-by-Step, Brian Godset (Manning)
Это книга по Data Science для новичков. В ней рассказывается о том, как на самом деле устроена работа в этой сфере. Последовательно изложены особенности постановки задач, создания плана, процессов решения и демонстрации результатов. Эта книга лучше всего подойдет тем, кто разбирается в технических аспектах Data Science, но плохо знаком с работой над долгосрочным проектом.
Getting What You Came For: The Smart Student’s Guide to Earning an M.A. or a Ph.D., Robert L. Peters (Farrar, Straus and Giroux)
Если вы решили получить степень магистра или кандидата наук, вас ждет долгий и изнурительный путь. Никто прямо не учит тому, как нужно сдавать экзамены, получать квалификацию, проводить исследования или быстро решать сложные задачи. И хотя эта книга довольно старая, ее уроки по успешному обучению остаются актуальными.
Bird by Bird: Some Instructions on Writing and Life, Anne Lamott (Anchor)
Bird by Bird («Птичка за птичкой») – не только руководство по усовершенствованию навыков письма, но и отличный путеводитель по жизни. Название взято из истории о птичках. Однажды брат автора бегал в панике от того, что должен был написать отчет о птицах за три месяца, но оставил все на последний вечер перед сдачей. Тогда их отец сказал ему: «Птичка за птичкой, приятель. Просто сделай все по порядку». Если вы боретесь с перфекционизмом или пытаетесь понять, о чем можно написать, возможно, эта книга – именно то, что вам нужно.
Блоги«Bootcamp rankings», Switchup.org
https://www.switchup.org/rankings/best-data-science-bootcamps
Switchup дает список 20 лучших буткемпов, составленный на основе отзывов студентов. Хотя вы можете не доверять обзорам и отзывам, с этого блога все равно можно начать выбор подходящего буткемпа.
«What’s the Difference between Data Science, Machine Learning, and Artificial Intelligence», David Robinson
http://varianceexplained.org/r/ds-ml-ai
Если вы не понимаете, в чем разница между Data Science, машинным обучением и искусственным интеллектом, то этот пост расскажет вам о хорошем способе отличать эти направления. При том что общепринятых определений не существует, нам нравится система, предложенная автором: Data Science дает инсайты, МО – прогнозы, а ИИ – действия.
«What You Need to Know before Considering a PhD», Rachel Thomas
https://www.fast.ai/2018/08/27/grad-school
Если вы считаете, что без кандидатской степени вам не стать дата-сайентистом, сначала прочтите этот блог. Автор объясняет, как дорого вам может обойтись этот шаг (с точки зрения как потенциальных психологических проблем, так и альтернативных карьерных издержек), и развенчивает миф о необходимости степени для проведения передовых исследований в области глубокого обучения.
«Thinking of Blogging about Data Science? Here Are Some Tips and Possible Benefits», Derrick Mwiti
http://mng.bz/gVEx
Если глава 4 не убедила вас в преимуществах ведения блога, возможно, вас убедит эта статья. Автор также предлагает несколько отличных советов по созданию более интересных публикаций, в том числе с помощью маркированных списков и новых датасетов.
«How to Build a Data Science Portfolio», Michael Galarnyk
http://mng.bz/eDWP
Это отличная подробная статья о создании портфолио. Автор рассказывает не только о типах проектов, которые стоит в него включать (или нет), но и о способах добавить их в резюме и поделиться с другими.
Часть 2
Как попасть в Data Science
Теперь, когда у вас есть весь арсенал для работы в Data Science, пришло время заняться ее поиском. Эта часть книги охватывает все, что вам нужно знать для успешного устройства в компанию, начиная с рассмотрения открытых вакансий и заканчивая переговорами и принятием оффера. Процесс поиска работы в Data Science имеет некоторые уникальные особенности из-за специфики этой сферы. На примере кейса мы научим вас фильтровать сотни вакансий, где требуются дата-сайентисты, и что конкретно нужно компаниям. И хотя эта часть книги особенно полезна для тех, кто еще не работал в сфере, материал может также освежить память младшим или старшим специалистам по данным.
Глава 5 охватывает поиск работы в Data Science и то, как не потеряться среди огромной массы вакансий. Из главы 6 вы узнаете, как составлять убедительное резюме и сопроводительное письмо. В главе 7 мы поговорим о том, чего следует ожидать от интервью и как к нему подготовиться. Мы рассмотрим все этапы – от первого телефонного звонка до финальной встречи. Из главы 8 вы узнаете, что говорить при получении оффера от компании: следует ли его принимать, а также зачем и как вести переговоры.
5. Поиск: как определиться с подходящей работой
В этой главе
• Поиск подходящих открытых вакансий.
• Расшифровка описания вакансий для понимания истинной сути должности.
• Выбор вакансий для отклика.
У вас есть навыки и портфолио; единственное, чего вам не хватает, – это работы! Однако вы должны быть готовы к тому, что процесс поиска займет некоторое время. Даже если все сложится удачно, вам понадобиться не менее месяца, начиная от подачи заявки до получения оффера, а чаще – несколько месяцев. Но с помощью лучших практик, перечисленных в этой главе, мы надеемся сделать для вас этот процесс максимально безболезненным.
Здесь мы подробно расскажем о том, как искать работу в Data Science. Во-первых, мы рассмотрим все возможные для этого места, чтобы вы ненароком не сузили свой выбор. Затем мы покажем, как расшифровать описания требований к кандидатам, чтобы вы понимали, какие навыки вам действительно нужны (спойлер: не все) и каким должностям они могут соответствовать. Наконец, мы научим, как выбрать наиболее подходящее место с учетом ваших знаний и опыта, а также типов компаний, о которых мы говорили ранее.
5.1. Поиск работыПрежде чем думать о составлении «идеального» резюме и сопроводительного письма, вам нужно знать, куда их отправить! Начните с сайтов вакансий, таких как LinkedIn, Indeed и Glassdoor. Стоит выбрать несколько веб-сайтов, потому что не все компании публикуют свои вакансии на каждом. Если вы относитесь к группе недостаточно представленного меньшинства в сфере технологий, поищите специальные сайты, такие как POCIT и Tech Ladies, которые предназначены для цветных людей и женщин в этой области соответственно. Место поиска зависит от вида работы, на которую вы претендуете, например бывают сайты объявлений для определенных типов компаний, таких как AngelList для стартапов или Dice для технологических организаций.
Обязательно сделайте поиск расширенным. Как мы уже говорили, вакансии в Data Science имеют множество различных названий. Одна и та же должность называется по-разному в зависимости от организации, а некоторые компании даже называют специалистов по-новому, оставляя прежний круг обязанностей. Например, раньше это были аналитики данных, а через год их переименовали в дата-сайентистов! Вот некоторые примеры, с которыми вы можете столкнуться (рис. 5.1):
Рис. 5.1. Должности, в названии которых не упоминается работа с данными, но которые вы можете встретить при поиске
• Аналитик данных. Эта должность часто является первой ступенью и может стать отличным стартом для начала работы в этой сфере, если у вас нет степени в области естественных наук, технологий, инженерии или математики (STEM) и опыта. Как мы позже расскажем в разделе 5.1.1, следует очень осторожно подходить к этой должности и убедиться, что в обязанности будут входить программирование и статистика или МО.
• Специалист по количественному анализу, аналитик продукции, аналитик-исследователь и прочие виды аналитиков. С точки зрения обязанностей эти должности еще разнообразнее, чем аналитик данных. Вы можете выполнять ту же работу, что и дата-сайентисты в других компаниях, равно как и коротать дни, работая с устаревшими таблицами Microsoft Excel.
• Инженер по машинному обучению. Как следует из названия, эти вакансии ориентированы на МО в Data Science и обычно требуют опыта работы инженером. Если у вас есть степень в области компьютерных наук или вы работали инженером-программистом, такая должность может отлично вам подойти.
• Инженер-исследователь. Для этих должностей часто требуется кандидатская степень, хотя это может быть обсуждаемо, если у вас есть степень магистра в области компьютерных наук, статистики или смежной области.
Попробуйте сначала просто поискать данные на одной из платформ по трудоустройству и потратить час на чтение объявлений о вакансиях: так вы поймете, какие отрасли есть в вашем регионе и какие типы вакансий открыты. Кроме того, у вас появится тактика для быстрой фильтрации новых объявлений. Просмотр наиболее подходящих вам должностей вместо всех доступных вакансий сузит область поиска до приемлемых масштабов. Не обращайте внимания на название вакансии: лучше используйте описание, чтобы оценить, насколько она вам подходит.
Будьте предельно осторожны, относясь к поиску работы как к игре в числа. В списке будут сотни вакансий, если вы ищете их в большом технологически развитом городе, таком как Нью-Йорк или Сан-Франциско, или в нескольких городах сразу. Поиск может быстро стать навязчивой идеей, ведь это простой способ почувствовать себя продуктивным («Сегодня я просмотрел 70 вакансий!»). И так же, как в случае с Twitter и Facebook, постоянная проверка обновлений может вызывать привыкание. Заниматься этим чаще, чем каждые три-пять дней, как правило, бесполезно. Если же делать это раз в месяц, то можно упустить хорошую возможность, но все же ни одна компания не закроет вакансию (которая фактически открыта) через два дня после ее размещения на сайте.
Если вас интересует работа в конкретных компаниях, ищите вакансии на их сайтах. Так как вы будете ориентироваться на разные названия должностей, проверяйте разные подразделения. В некоторых компаниях вакансии в Data Science можно найти в финансовом, инженерном и других отделах, и если вы не заглянете туда, то не найдете их.
Джуны Когда будете искать работу, ищите должности с названиями «начинающий специалист», «Junior», «младший сотрудник» и «начальный уровень». Также обратитесь за помощью в центр профориентации и посещайте разные ярмарки вакансий в вашем учебном заведении.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?