Что бы усмирять внутреннего истеричного отличника, я постоянно чему-то учусь. Data Science - одна из самых обширных прикладных областей, все в ней знать просто невозможно. Но никто не запрещает пытаться.

Если очень кратко, то вот базовый хард-стек DSа:

  • анализ данных
  • матстат & тервер
  • программирование
  • алгоритмы машинного обучения
  • базы данных
  • MLOps

То есть для специалиста полного цикла (full-stack), способного развернуть в организации ML-продукт с нуля, необходимо уметь проходить следующие технические шаги (бизнес-взаимодействие пока опустим, обсудим эту тему отдельно).

1. Определить данные для решения задачи, настроить процесс управления данными в хранилище - ETL (extract, transform, load): что является источниками данных, какие промежуточные таблицы создаются в процессе подготовки (трансформации, очистки, обогащения) данных, куда выгружаются результаты, готовые для анализа. Тут понадобится понимание архитектуры баз данных. Для взаимодействия с потоком данных необходим инструмент, например, язык структурированных запросов SQL. С его помощью можно как непосредственно анализировать данные (считать агрегаты, статистики, выполнять сортировки, объединения, пересечения), так и просто черпать их для работы в других средах - например, как любят DSы, обращаться к базе непосредственно из своего jupyter notebook-а

2. Разработать ML-решение: провести анализ данных, подобрать алгоритм в зависимости от типа задачи, отобрать информативные признаки, выбрать оптимальные гиперпараметры. Тут понадобится знание ML-подходов: регрессии и классификации, классические линейные и деревянные, бустинги и ансамбли, нейросети, лингвистические модели и т.д., устанешь перечислять

3. Чтобы это все имплементировать, конечно, нужен язык. Самый распространенный для решения DS-задач - это Python, он понадобится как для ресерча, так и для написания кода в продакшен. Для разведки в данные EDA (Exploratory Data Analysis) и алгоритмической части хватит функционального программирования, для эксплуатации - уже хорошо использовать объектно-ориентированный подход

4. Когда прод-код написан, его необходимо обернуть и встроить в процесс регулярного выполнения, тут пригодится понимание MLOps: как собирать docker-контейнеры, версионироваться (git, bitbucket, nexus и др.), мониторить метрики (MLFlow), ставить запуски на расписание (Airflow), контролировать нагрузку, читать логи и строить дэшборды мониторинга качества (Grafana, Kibana и проч.)

5. Оценивать эффективность и целесообразность решений можно, например, проводя А/В тестирование. Тут понадобятся знания теории вероятностей и мат.статистики, в частности подходов к выбору метрик и статистических критериев, оценке необходимых объемов тестируемых выборок и продолжительности проведения эксперимента, понимание базовых принципов принятия решений на основе проверки гипотез (доверительные интервалы, p-value, ошибки I и II рода, чувствительность и специфичность тестов)

Это некий MVP (Minimum Viable Product), который представляет из себя Data Science специалист. В каждой из этой областей определенно можно плавать очень глубоко, а можно и вовсе утонуть. Но если не плавать хотя бы на поверхности, а просто стоять на берегу, то получится "трехногий стул", готовый покачнуться при добавлении любой новой опции.

Но это совсем не значит, что Data Science не постижим, и что не стоит даже браться.

Помните, что выбор alpha - на вашей стороне. Так что просто keep calm & be significant 🤍

#dswork