Data engineer и data scientist: что умеют и сколько зарабатывают

Распространение сферического коня в вакууме по территории РФ

Привет от ODS. Мы откликнулись на идею tutu.ru поработать с их датасетом пассажиропотока РФ. И если в посте Milfgard огромная таблица выводов и научпоп, то мы хотим рассказать что под капотом.

Что, опять очередной пост про COVID-19? Да, но нет. Нам это было интересно именно с точки зрения математических методов и работы с интересным набором данных. Прежде, чем вы увидите под катом красивые картинки и графики, я обязан сказать несколько вещей:

  • любое моделирование — это очень сложный процесс, внутри которого невероятное количество ЕСЛИ и ПРЕДПОЛОЖИМ. Мы о них расскажем.
  • те, кто работал над этой статьей — не эпидемиологи или вирусологи. Мы просто группа любителей теории графов, практикующих методы моделирования сложных систем. Забавно, но именно в биоинформатике сейчас происходит наиболее существенный прогресс этой узкой области математики. Поэтому мы понимаем язык биологов, хоть и не умеем правильно обосновывать эпидемиологические модели и делать медицинские заключения.
  • наша симуляция всего лишь распространение сферического коня в вакууме по территории РФ. Не стоит относиться к этому серьезно, но стоит задуматься об общей картине. Она определенно интересная.
  • эта статья не существовала бы без датасета tutu.ru, за что им огромное спасибо.

Под катом — результаты нашего марш-броска на датасет.

Решаем задачи целиком

Пол Хиемстра, преподаватель и практик Data Science, даёт три совета тем, кто хочет эффективно изучать науку о данных.

Работайте над проектами целиком. У начинающих дата-сайентистов обычно скромная роль, они отвечают за небольшие кусочки проекта. Эту проблему решает pet-проект, который можно делать параллельно с основной работой. Он поможет помнить о масштабе и не работать над разными этапами по отдельности. Конечно, придётся осваивать и точечные навыки (например, какую-нибудь Python-библиотеку), но потом сразу возвращайтесь к целой задаче.

Как сделать pet-проект: найдите датасет из интересующей вас области и проанализируйте его, например, по методологии CRISP-DM. Описывайте каждое своё действие, а главное — соединяйте шаги между собой. Для этого подойдут сервисы типа Google Colab и Jupyter Notebooks. Подробный отчёт о pet-проекте украсит ваше портфолио.

Найдите хорошего наставника. Обсуждать свою работу с опытным дата-сайентистом — хорошая практика. Так вы прокачаете метакогнитивные навыки, которые необходимы для быстрого разбора сложных проблем. В общении с наставником старайтесь фокусироваться на том, как вы решаете проблему — то есть на подходе и идеях, а не на самом решении (коде, модели, библиотеке). Вопросы «а как…» позволяют максимально раскрыть и перенять опыт.

Найдите единомышленников. Объяснение своих решений другим людям, ответы на их вопросы — прекрасный способ лучше понять собственную работу. Помните незадачливого «препода» из анекдота, который на третий раз уже и сам понял, что говорит, а студенты так и не смогли? Так вот — это не просто шутка. А слушая решения других, пытайтесь в первую очередь выяснить, почему ваш собеседник сделал что-либо (например, выбрал конкретную модель).

Этап 6

Углубление и развитие технических навыков

Если предыдущие этапы давали вам навыки, без которых работать ну вообще нельзя, то навыки этого этапа призваны повысить вашу продуктивность или повысить качество решаемых задач, повысить самостоятельность при запуске разработанных моделей машинного обучения в продакшн.

  • Python на хорошем уровне:  декораторы, уверенное знание классов и наследования, изучение базовых классов, dunderscore __методы__ .

  • Уверенное пользование bash, понимание основ linux

  • Полезно изучить основы docker

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

Другие области машинного обучения

В какой-то момент вам может потребоваться выйти из сферы подготовки прогнозных моделей или изучения и объяснения данных (кластеризация, EDA и визуализация). Это может быть связано как с вашими интересами, так и с проектами на работе. Например, это могут быть рекомендательные системы. Наверное, базовые рекомендательные алгоритмы можно изучать и одновременно с основами машинного обучения, т.к. знание одного не является обязательным для знания другого. Но логичнее переходить к ним, когда вы уже разобрались с основными алгоритмами обучения прогнозирования и кластеризации: скорее всего, этого от вас будут ожидать любые коллеги до тех пор, как вы включитесь в работу над рекомендательными системами.

Нейронные сети

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

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

Как пройти собеседование специалиста Data Science?

Даже если вы начинающий Data Scientist, вы должны показать, что уже умеете работать с данными и участвовали в соревнованиях, делали что-то сами и принимали участие в хакатонах. Так работодатель поймет, что вы увлечены профессией, готовы развиваться, уже умеете работать в команде и применять знания.

Вы должны будете ответить на вопросы про машинное обучение и статистику.

  1. Разработка ПО: массивы, хэш-таблицы, всевозможные алгоритмы, связные списки, бинарный поиск, рекурсия.
  2. Прикладная статистика: теория вероятности, описательная статистика, регрессии, проверка гипотез, байесовский вывод.
  3. Машинное обучение: метрики классификации, регрессии, выбор статистической модели, переобучение, смещение-дисперсия, сэмплирование, проверка гипотез, модели классификации, модели кластеризации, регрессионные модели.
  4. Обработка и визуализация данных: организация, профайлинг, визуализация, обработка, стандартизация, нормализация.
  5. Глубинное обучение.
  6. Языки программирования.

Записывайте, что вы изучали и приходите уверенным в своих знаниях.

Надеемся, что профессия Data Scientist стала вам ближе и интереснее, а наш материал поможет вам стать лучше и ближе к своей цели. Желаем, успехов! А также приглашаем на собеседование в департамент Data & Analytics ISsoft.

Что знает, умеет и сколько стоит Data Scientist

Специалисты в области Data Science называются учеными или исследователями по данным (Data Scientist’ами). В настоящее время это одна из самых востребованных и высокооплачиваемых ИТ-профессий. Например, в Москве на январь 2020 года месячный труд ученого по данным оценивается около 200 тысяч рублей (от 70 до 250 т.р.). В США оплата выше – $110 – $140 тысяч в год .

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

Для достижения этой цели Data Scientist использует следующие инструменты:

  • пакеты статистического моделирования (R-Studio, Matlab);
  • технологии больших данных (Apache Hadoop, HDFS, Spark, Kafka), NoSQL-СУБД (Cassandra, HBase, MongoDB, DynamoDB и прочие нереляционные решения);
  • SQL для работы с классическими реляционными базами данных и формирования структурированных запросов к NoSQL-решениям с помощью Apache Phoenix, Drill, Impala, Hive и пр.
  • языки программирования (Python, R, Java, Scala) для разработки моделей машинного обучения и прототипов программного обеспечения;
  • информационные системы класса Business Intelligence (дэшборды, витрины данных) для визуализации бизнес-показателей из информационных массивов.

Таким образом, можно сделать вывод, что Data Science включает следующие области знаний:

  • математика: математический анализ, матстатистика и матлогика;
  • информатика: разработка программного обеспечения, баз данных, моделей и алгоритмов машинного обучения (нейросети, байесовские алгоритмы, регрессионные ряды и пр.), Data Mining;
  • системный анализ (методы анализа предметной области, Business Intelligence).

Подробнее о профессии Data Scientist’a и его отличиях от инженера и аналитика данных (Data Engineer и Data Analyst) мы писали здесь.

Портрет профессиональных компетенций ученого по данным

Источники

  1. https://ru.wikipedia.org/wiki/Наука_о_данных
  2. https://www.profguide.io/professions/data_scientist.html
  3. https://chernobrovov.ru/articles/analitika-dannyh-i-data-science-shodstva-i-razlichiya.html

Следующий шаг — полировка и углубление знаний

В машинном обучении половина успеха заключается в правильной подготовке данных для алгоритом и правильном формулировании решаемой задачи (целевой функции)

Также важно научиться проходить все шаги построения моделей машинного обучения в наиболее оптимальной последовательности. Все данные темы отлично раскрыты в курсе, записанными русскими ребятами, но на английском языке: https://www.coursera.org/learn/competitive-data-science

Не стоит обращать внимание на kaggle — приведенные методы актуальны для реальных задач. Пройдя этот курс вы сможете понять комикс ниже

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

Разные смежные концепции, которые необходимо знать

Нужно четко понимать разницу между корреляцией и причино-следственной связью. Не понимая этого — нельзя работать дата-сайентистом.

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

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

Также, с точки зрения постановки целей — поведение людей часто оказывается искажено, о чём рассказывает Goodhart’s law. Знание данного эффекта может подсказать направления анализа разных явлений.

Другие полезные книги/ материалы

Куча англоязычных статей по использованию разных библиотеке, в основном очень начального уровня, регулярно публикуется на сайте https://towardsdatascience.com; до 3 статей в месяц можно читать бесплатно.

Statistics Done Wrong .The woefully complete guide by Alex Reinhart — отличная иллюстрация того как не стоит применять математические методы проверки гипотез. Автор рассказывает как даже профессиональные учёные всё время ошибаются в их использовании.

Python Machine Learning, by Sebastian Raschka — хороший набор разных кусков кода, которые могут помочь на начальном этапе. Также у этого автора хорошие статьи по разным темам.

Как находить другие хорошие книги и курсы, отбирать лучшие и наиболее подходящие — писал в предыдущих статьях.

Необходимые технические знания

Git необходимо выучить чтобы работать над каким-либо кодом совместном с другими людьми. Замечательно простая и бесплатня книжка на английском — Ry’s Git tutorial. Также много книг доступно бесплатно на официальном сайте git. Отличное визуальное объяснение разных концепций: http://ndpsoftware.com/git-cheatsheet.html

https://www.practicaldatascience.org/ — хороший набор материалов по разным библиотекам и дополнительным инструментам. Фактически, даётся исчерпывающий перечень тем, которые придётся освоить для работы в дата саенс, с вводными материалами по всем темам (секцию Cloud точо стоит читать наискосок, т.к. тут с большой вероятностью придется работать с подобными технологиями других вендоров, которые имеют отличия).

Готов выступить ментором в самообучении

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

Если у вас есть индивидуальные вопросы, на которые не отвечают мои статьи — пишите на почту self.development.mentor в gmail.com, Олег

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

И если мои статьи для вас полезны — на будущие статьи меня также можно мотивировать материально, под этой статьей должна быть кнопка «задонатить» для этих целей.

Быть Джуном Мидловичем, Д. С.

Успешная работа в Data Science требует сплава знаний из программирования, статистики и консалтинга. Вот примеры задач, которые решает дата-сайентист:

  • оценка потребностей заказчика;
  • отбор данных для анализа;
  • загрузка данных в среду разработки;
  • удаление выбросов и обогащение данных;
  • выбор и настройка модели;
  • интерпретация результатов работы модели.

Настоящий специалист решает задачи согласованно и с учётом их взаимного влияния, а не по отдельности — «сферически в вакууме».

Эти сложные взаимосвязи рабочих задач дата-сайентиста порождают цепочки верхнеуровневых вопросов. Например:

  • Как заполнить пропущенные значения в данных, исходя из особенностей бизнеса и потребностей заказчика?
  • Какие параметры выбрать у моделей, если пропущенные значения заполнены тем или иным способом?
  • Почему модель выдаёт странные результаты: я выбрал не те параметры, не разобрался в отрасли или просто не понял заказчика?

Что нужно уметь?

Программировать на Python

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

Книги по теме:

  • «Python для сложных задач. Наука о данных и машинное обучение», Дж. Вандер Плас — руководство по статистическим и аналитическим методам обработки данных;
  • «Python и анализ данных», Уэс Маккинни — пособие по применению Python в науке о данных;
  • «Автоматизация рутинных задач с помощью Python», Эл Свейгарт — книга даёт хорошие практические основы для начинающих.
  • «Изучаем Python», М. Лутц — учебник с практическим подходом, который подойдёт как новичкам, так и разработчикам с опытом.

После того, как вы изучите основы Python, можете ознакомиться с библиотеками для Дата Сайнс.

Основные библиотеки:

  • Numpy
  • Scipy
  • Pandas

Визуализация:

  • Matplotlib
  • Seaborn

Машинное обучение и глубокое обучение:

  • SciKit-Learn
  • TensorFlow
  • Theano
  • Keras

Обработка естественного языка:

NLTK

Веб-скрейпинг:

BeautifulSoup 4

Собирать данные

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

Книги по теме:

  • «Технологии анализа данных: Data Mining, Visual Mining, Text Mining, OLAP» В.В. Степаненко, И.И. Холод — описание методов обработки данных с примерами;
  • «Data mining. Извлечение информации из Facebook, Twitter, LinkedIn, Instagram, GitHub», М. Рассел. М. Классен — книга, которая учит практическим приёмам анализа данных на примере популярных соцсетей.

Программирование: что и как учить?

Что такое SQL и зачем его учить?

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

SQL простой, потому что он «декларативный»: нужно точно описать «запрос» как должен выглядеть финальный результат, и всё! — база данных сама покажет вам данные в нужной форме. В обычных «императивных» языках программирования нужно описывать шаги, как вы хотите чтобы компьютер выполнил вашу инструкцию. C SQL намного легче, потому что достаточно только точно понять что вы хотите получить на выходе.

Сам язык программирования — это ограниченный набор команд. 

Когда вы будете работать с данными — даже аналитиком, даже необязательно со знанием data science, — самой первой задачей всегда будет получить данные из базы данных. Поэтому SQL надо знать всем. Даже веб-аналитики и маркетологи зачастую его используют.

Как учить SQL:

Наберите в Гугле «sql tutorial» и начните учиться по первой же ссылке. Если она вдруг окажется платной, выберете другую. По SQL полно качественных бесплатных курсов.

На русском языке тоже полно курсов. Выбирайте бесплатные.

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

На изучение достаточно всего лишь от 10 часов (общее понимание), до 20 часов (уверенное владение большей частью всего необходимого).

Почему именно Python?

В первую очередь, зачем учить Python. Возможно, вы слышали что R (другой популярный язык программирования) тоже умеет очень многое, и это действительно так. Но Python намного универсальнее. Мало сфер и мест работы, где Python вам не сможет заменить R, но в большинстве компаний, где Data Science можно делать с помощью Python, у вас возникнут проблемы при попытке использования R. Поэтому — точно учите Python. Если вы где-то услышите другое мнение, скорее всего, оно устарело на несколько лет (в 2015г было совершенно неясно какой язык перспективнее, но сейчас это уже очевидно).

У всех других языков программирования какие-либо специализированные библиотеки для машинного обучения есть только в зачаточном состоянии.

Как учить Python

Основы:

Прочитать основы и пройти все упражнения с этого сайта можно за 5-40 часов, в зависимости от вашего предыдущего опыта.

После этого варианты (все эти книги есть и на русском):

  1. Learning Python, by Mark Lutz (5 издание). Существует и на русском.

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

    Эта книга, наоборот, разбирает Python досконально. Поэтому по началу её чтение будет идти медленнее, чем аналоги. Но зато, прочтя её, вы будете способны разобраться во всём.

    Я прочёл её почти целиком в поездах в метро за месяц. А потом сразу был готов писать целые программы, потому что самые основы были заложены в pythontutor.ru, а эта книга детально разжевывает всё.

    В качестве практики берите, что угодно, когда дочитаете эту книгу до 32 главы, и решайте реальные примеры (кстати, главы 21-31 не надо стараться с первого раза запоминать детально. Просто пробежите глазами, чтобы вы понимали что вообще Python умеет).

    Не надо эту книгу (и никакую другую) стараться вызубрить и запомнить все детали сразу. Просто позже держите её под рукой и обращайтесь к ней при необходимости.

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

  2. Python Crash Course, by Eric Matthes

    Эта книга проще написана и отсеивает те вещи, которые всё-таки реже используются. Если вы не претендуете быстрее стать высоко-классным знатоком Python — её будет достаточно.

  3. Automate the Boring Stuff with Python

    Книга хороша примерами того, что можно делать с помощью Python. Рекомендую просмотреть их все, т.к. они уже похожи на реальные задачи, с которыми приходится сталкиваться на практике, в том числе специалисту по анализу данных.

Какие трудозатраты?

Путь с нуля до уровня владения Python, на котором я что-то уже мог, занял порядка 100ч. Через 200ч я уже чувствовал себя уверенно и мог работать над проектом вместе с коллегами.

(есть бесплатные программы — трекеры времени, некоторым это помогает для самоконтроля) 

Требования к специалисту

Специалист по данным неразрывно связан с Data Science – наукой о данных. Она находится на пересечении нескольких направлений: математики, статистики, информатики и экономики. Следовательно, специалисты должны понимать и интересоваться каждой из этих наук.

Кроме этого, Data Scientist должен знать:

  1. Языки программирования для того, чтобы писать на них код. Самые распространенные – это SAS, R, Java, C++ и Python.
  2. Базы данных MySQL и PostgreSQL.
  3. Технологии и инструменты для представления отчетов в графическом формате.
  4. Алгоритмы машинного и глубокого обучения, которые созданы для автоматизации повторяющихся процессов с помощью искусственного интеллекта.
  5. Как подготовить данные и сделать их перевод в удобный формат.
  6. Инструменты для работы с Big Data: Hadoop, MapReduce, Apache Hive, Apache Kafka, Apache Spark.
  7. Как установить закономерности и видеть логические связи в системе полученных сведений.
  8. Как разработать действенные бизнес-решения.
  9. Как извлекать нужную информацию из разных источников.
  10. Английский язык для чтения профессиональной литературы и общения с зарубежными клиентами.
  11. Как успешно внедрить программу.
  12. Область деятельности организации, на которую работает.

Помимо того, что специалист по данным должен обладать аналитическим и математическим складом ума, он также должен быть:

  • трудолюбивым,
  • настойчивым,
  • скрупулезным,
  • внимательным,
  • усидчивым,
  • целеустремленным,
  • коммуникабельным.

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

Инструкция: как стать data-сайентистом

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

Пошаговые действия:

Для того, чтобы в дальнейшем не возникло пробелов в понимании, лучше начать с самых азов — с математики. Высшая математика не понадобится, но понимать такие вещи, как производная, дифференциал, определитель матрицы и подобное, обязательно надо.
Дальше следует изучить математическую статистику, без которой никуда при анализе любой информации.
Теперь можно переходить к более практическим действиям — научиться писать код на языке программирования Python. Для сферы data science это основной язык. Реже применяется R, который значительно легче усваивается после овладения Python

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

Так информация лучше усваивается.
Ознакомиться с такими инструментами, как Apache Kafka, HDFS, Apache Spark, Apache Cassandra.
С данным багажом знаний уже можно попробовать создать модель для прогноза чего-либо. Придумайте для себя задачу в сфере, где легко достать неструктурированные данные, и создайте модель для прогноза.
Теперь можно найти работу. На протяжении работы будут появляться новые вещи, которые стоит изучить. Что конкретно это будет — зависит от места работы и проектов.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector