Наука о данных vs инженерия данных vs инженерия машинного обучения

Я вижу, что многие люди, особенно студенты и новички в области Data Science / Data Engineering, путаются с этими разными названиями должностей, особенно потому, что описания должностей и спецификации для всех опубликованных должностей в целом очень похожи. Имея опыт работы в мире аналитики / данных, я понял, что не только студенты или молодые люди, ищущие работу, но и компании, в некоторых случаях их руководители также не понимают, какая именно роль им нужна, и, следовательно, публикуют нечеткие JD на сайте. разные порталы вакансий, еще больше сбивающие с толку молодую публику.

Хотя в Интернете есть статьи, где обсуждаются различия, я стараюсь писать очень четко, чтобы минимизировать путаницу. В конце статьи я ожидаю следующее:
i) Студент или энтузиаст науки о данных должен иметь возможность выбрать, какой карьерный путь он / она действительно хочет или какая роль подходит для него / нее.
ii) Менеджер по найму или руководитель должен иметь возможность решить, какую роль они на самом деле хотят в настоящее время в своей команде или организации и как они могут создать команду, сочетая эти различные роли или наборы навыков.

Роль инженера по обработке данных:

Обычно в любой организации данные хранятся в разных местах в разных базах данных; где-то может быть база данных Oracle, где-то они могут использовать Teradata, где-то данные могут храниться в MS SQL. Некоторые системы могут принимать входные и выходные данные в формате JSON или XML. Где-то они могут также использовать базы данных NoSQL, такие как Cassandra или MongoDB. Где-то данные также могут находиться в структуре распределенных вычислений, такой как Hadoop. Многие данные остаются в файлах Excel также у разных групп внутри организации.

Роль инженера по данным заключается в систематическом планировании, создании и обслуживании архитектур данных и структур баз данных для хранения данных из всех этих различных типов структурированных (все типы СУБД), полуструктурированных (JSON, XML и т. Д.) И неструктурированных. (Текст, изображение, речь и т. Д.) Источниками данных, которые могут использоваться специалистами по обработке данных или аналитиками для своих целей (например, для получения информации, разработки моделей и т. Д.). Им нужно знать, какое поле что означает, какие данные и какие поля нужны и когда.

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

Необходимые навыки: Итак, что нужно изучить для выполнения вышеупомянутых задач?

  1. Продвинутый уровень SQL и PLSQL - использование функций Windows, оптимальное построение запросов (оптимизация памяти и обработки), хранимые процедуры, функции, триггеры и т. д.
  2. Архитектура базы данных - знание архитектур различных баз данных, таких как Oracle, Microsoft, DB2, Cassandra, MongoDB и т. д.
  3. BigData - во многих компаниях инженеры по BigData нанимаются отдельно, а в других инженеры по обработке данных также работают с BigData.
  4. Языки программирования - Python, VBA, некоторые ООП, такие как Java, C ++.
  5. Управление неструктурированными данными - НЛП, обработка изображений и т. д.
  6. Базовая статистика и некоторое представление о машинном обучении.

Роль специалиста по данным:

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

Ожидается, что специалист по данным сможет извлекать необходимые данные из различных баз данных с помощью коннекторов через R, Python, Java или любой другой язык, который он / она использует в работе. Они должны иметь возможность манипулировать данными таким образом, чтобы эти данные можно было передавать в различные статистические алгоритмы или алгоритмы машинного обучения. Данные, созданные инженерами данных, также необходимо преобразовать для создания различных переменных, которые специалист по данным будет использовать для построения моделей.

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

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

Необходимые навыки:

  1. Статистика и машинное обучение - они должны хорошо разбираться в статистике и обладать математической интуицией, чтобы эффективно понимать данные и строить прогностические модели (линейная и логистическая регрессия, дерево решений, случайный лес и т. д.) или прогнозирования. модели (ARIMA, ARIMAX, Prophet и др.). Им необходимо понимать каждый параметр модели / алгоритма, а также плюсы и минусы каждой модели. Им также необходимо знать некоторые из различных фреймворков глубокого обучения, таких как Tensorflow, Pytorch, Caffe и т. Д.
  2. Понимание бизнеса - как уже упоминалось, они должны получить знания в предметной области, чтобы понимать, какие данные они могут использовать в своей работе, какие модели принесут больше пользы бизнесу и т. д.
  3. Умение работать с людьми. Поскольку большая часть работы специалиста по анализу данных связана с пониманием бизнеса разными командами, они должны обладать эффективными навыками работы с людьми.
  4. Знание различных инструментов и платформ - знание нескольких платформ машинного обучения и технологических стеков необходимо, чтобы стать хорошим специалистом по данным. Он включает в себя разные ОС, различные инструменты и экосистемы больших данных, такие как Kafka, Spark, Pig, Hive и т. Д., Облачные платформы, такие как AWS, GCP, Azure и т. Д.
  5. Навыки работы с базами данных - они должны уметь работать с SQL.
  6. Навыки программирования. Специалист по данным должен иметь практический опыт работы с одним или несколькими языками, которые используются для машинного обучения, например R, Python, SAS, Julia и должны понимать ООП.
  7. Обработка полуструктурированных и неструктурированных данных. Поскольку многие данные в любой компании являются частично структурированными (JSON, XML и т. д.) и неструктурированными (изображения, PDF-файлы, аудиозаписи, изображения и т. д.), специалист по данным тоже должен уметь их обрабатывать. НЛП, компьютерное зрение, оптическое распознавание символов также необходимо изучить для некоторых важных бизнес-сценариев.
  8. Навыки презентации. Важной частью работы специалиста по данным является представление результатов заинтересованным сторонам и демонстрация руководству преимуществ использования Data Science. От специалиста по данным также требуются навыки эффективной презентации.

Роль инженера по машинному обучению:

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

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

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

Необходимые навыки:

  1. Машинное обучение и статистика - необходимость хорошо разбираться в каждой модели. Таким образом, ML и статистика необходимы для этой роли.
  2. Навыки программирования - они должны быть очень хорошими программистами и должны знать несколько языков, таких как Python, Java, C ++, R, а также различные библиотеки этих языков, которые помогают в ML и создают API.
  3. Различные инструменты и платформы. Инженерам машинного обучения необходимо знать все инструменты и платформы, которые знает специалист по данным (как описано в разделе "Специалист по данным"). В дополнение к этому они должны изучить инструменты Flask, Docker, Kubernetes и т. Д., Которые помогут в развертывании моделей в производстве на разных платформах.
  4. Обработка данных - такой же или более высокий уровень знаний в области обработки данных по сравнению со специалистами по данным.
  5. Знание предметной области - Знание предметной области помогает инженеру машинного обучения понять, какой метод или подход может быть лучшим в какой ситуации.

Я надеюсь, что теперь у вас есть четкое представление о том, что на самом деле означают эти разные профили или должности. Кандидат на работу или соискатель должен понимать, что многие сотрудники, публикующие вакансии, не понимают этих различий, а иногда у компаний нет бюджета, чтобы нанять людей с такими разными профилями. Итак, со стороны JD, похоже, они хотят все в одном. В таких случаях кандидаты должны уточнить предполагаемые обязанности и структуру команды во время собеседования и, соответственно, решить, какую именно роль они выполняют и подходит ли он / она для нее. Точно так же менеджеры по найму также должны не только руководствоваться заголовками резюме, но и понимать, каковы именно навыки кандидата и его место в команде. Если это читает студент, я хочу заверить вас, что не обязательно знать все, что здесь написано, чтобы начать карьеру в области Data Science, Data Engineer или ML Engineer. Если у вас сильные основы и аналитический склад ума, который открыт для познания нового, этого достаточно, чтобы сначала начать. Затем, работая, постепенно вам нужно постоянно повышать квалификацию, как это делаем все мы, и расти все больше и больше в любом выбранном вами карьерном пути. Спасибо, что дочитали до этого места!