Это мнение. Последние 10 лет я работал почти исключительно с данными. Мне посчастливилось работать с некоторыми из самых ловких, новаторских и трудолюбивых инженеров, поскольку мы создавали специальные приложения и идеи для наших клиентов, разбирающихся в данных.

Моя цель в этой статье - изложить то, что произошло в мире науки о данных, возможно, за последние 3-5 лет, если смотреть сквозь призму моей линзы.

Вот как седан BMW 7 серии выглядел под капотом 25 лет назад по сравнению с сегодняшним днем.

Среднестатистическому водителю 25 лет назад приходилось проводить с открытым капотом - может, час каждый месяц? Время, потраченное сегодня - может быть, час каждые 3–4 года. Современные двигатели внутреннего сгорания стали такими хорошими за десятилетия. Точность проектирования и изготовления всех компонентов автомобиля, больших и малых, исключительно высока. Средний срок службы современного седана значительно выше, чем у старого дорогого седана. Кроме того, инженерные услуги и предметная экспертиза для обеспечения обслуживания автомобиля доступны по коммерческим ценам.

То же самое и с современной наукой о данных - искусственным интеллектом - машинным обучением.

Определение

Позвольте мне немного отвлечься. Поскольку нет такого органа, как ISO, для определения этих терминов, вот мои определения. Я использую Data Science как универсальный термин. Если бы это был список, он бы содержал следующие элементы: [«описательная аналитика», «бизнес-аналитика», «прогнозная аналитика», «искусственный интеллект», «машинное обучение», «предписывающая аналитика», «обработка естественного языка», « Vision Computing »,« Статистика »]. В этом списке есть еще пункты. Искусственный интеллект - это опыт для конечного пользователя продукта или услуги. Он хорошо смотрится в презентациях и красиво звучит в разговорах. Это может быть элементарный механизм правил, стоящий за API, или это может быть генетический алгоритм, который находит наиболее оптимальную комбинацию параметров для работы фабрики, что позволяет сэкономить миллионы долларов на эксплуатационных расходах. Пока у пользователей этой службы создается впечатление волшебства, это искусственный интеллект. То же самое называется машинным обучением со стороны реализации при найме людей для создания таких систем. А теперь вернемся к теме.

Организация

Размер организации определяет роли, которые они предлагают для построения таких систем. У большой организации могут быть особые роли. Далее важно то, какое место в спектре оцифровки принадлежит организации. Чем более цифровым будет отрасль / организация, тем более специализированные роли будут предлагаться.

Я не собираюсь трепать шершневое гнездо из-за вакансий, набранных рекрутерами из стартапов, которым уже исполнился год или которые недавно возникли, которые хотят нанять доктора философии. с более чем 10-летним опытом работы в SQL, Scala, Spark, Python, R, анализе временных рядов, обработке естественного языка, сверточных нейронных сетях и т. д. и т. д.

Нетехнологическая фирма с несколькими сотнями сотрудников будет называться Data Scientist. Организация хотела бы, чтобы она начала с написания их конвейера бизнес-аналитики с использованием инструмента ETL, поскольку они продвигаются прямо по шкале зрелости данных. Затем она будет создавать описательные отчеты и информационные панели, используя электронные таблицы, Qlik или Tableau. Поскольку их потребности в данных возрастают, ей теперь необходимо изучить и использовать аналитическое хранилище данных, такое как Redshift, которое позволяет горизонтальное масштабирование. Она смоделировала бы упрощенную витрину данных и подключила бы к ней отчеты с помощью SQL. Теперь они хотят, чтобы она спрогнозировала выручку от их товарных позиций на следующие 2 квартала. Она настраивает платформу для ноутбуков, такую ​​как JupyterHub, для построения модели ARIMA с использованием Python. Затем ожидается, что она упакует его в REST API с помощью Flask, который развертывается с помощью службы Kubernetes. Предполагается, что один и тот же человек будет покрывать весь спектр требований к данным. Основываясь на анекдотических свидетельствах (мне нравятся оксюмороны), эта роль предлагается в 90% случаев, независимо от цитируемого обозначения.

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

Остальные 5% вакансий принадлежат стартапам, которым уже 1 год. Чтобы быть справедливым по отношению к стартапам годичной давности, я видел такие описания должностей и в, казалось бы, зрелых организациях. Я связываю их с полным отсутствием связи между поиском талантов и менеджером по найму.

Товар

В отличие от автомобилей, цифровой мир развивался быстрее. Ожидал. Вместо 5–7 десятилетий аналогичный переход произошел в течение последних 5–7 лет.

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

Как разработчик, нужно знать применимость алгоритмов к постановке задачи. Как только это известно, она дает алгоритму чистый ввод в ожидаемом формате. Ей нужно знать, что происходит внутри, но только в уменьшенном масштабе. Наконец, она должна следить за выходом. Здесь ее цель - добиться того, чтобы ее ROI был выше базового. Если что-то не так, она должна указать на неисправную деталь. Все современные библиотеки гарантируют, что эти шаги станут простыми. Они дают четкое представление о том, что входит и выходит, сохраняя при этом адекватную запутанность середины.

Вот несколько примеров коммерциализации математики как услуги:

Статистический анализ и моделирование

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

Хотя и в упрощенном виде, вот как будет выглядеть код - с тщательно подобранными параметрами.

from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(df_log, order=(2,1,2))
results = model.fit(disp=-1)

Можно еще больше упростить их работу, используя библиотеку под названием Prophet от Facebook для прогнозирования временных рядов.

from fbprophet import Prophet
prophet = Prophet()
prophet.fit(df)
future = prophet.make_future_dataframe(periods=12 * 6, freq=’M’)
forecast = prophet.predict(future)

Это работает хорошо. Достаточно хорош, чтобы получить результаты, "достаточно близкие" к модели, созданной вручную.

Другие приложения

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

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

Переход

Такие поставщики облачных услуг, как AWS, GCP и Azure, ускорили переход Data Science в Engineering. Функции машинного обучения доступны прямо сейчас в аналитических базах данных, таких как BigQuery. Они невероятно полезны. SQL - стандартный язык. Данные уже хранятся в таких базах данных. Его не нужно вытаскивать, чтобы препирать на Python. Функции, сравнимые с тем, что доступно в Numpy, Pandas и даже ScikitLearn, доступны для использования в качестве функций SQL. Пользовательские функции выводят его на новый уровень. Кроме того, существуют службы управляемого машинного обучения, которые я еще не пробовал, но уверен, что они еще больше улучшат доступность как математики, так и инженерии.

Достичь бизнес-цели. В остальном это либо исследовательский проект, либо хобби. Большинство фирм хотят как можно быстрее применить вещи, чтобы упростить жизнь своих клиентов. С их стороны снизить затраты. Сделайте так, чтобы заинтересованные стороны были довольны, демонстрируя силу существующих продуктов. Важно сообщить им, что работает, а что нет, как можно раньше. Я читал, что 70% проектов машинного обучения в конечном итоге заброшены. Переход от «науки» к инженерному делу способствует снижению этого числа.

Инженер или аналитик, использующие стандартные инструменты, могут помочь снизить маркетинговые расходы компании на 60%, правильно выбрав таргетинг с помощью правильных моделей. Часто с этого момента и далее наблюдается уменьшение предельной прибыли. Чтобы сократить каждый лишний 1% этих маркетинговых расходов, количество денег, потраченных на специализированные инструменты и отдельных лиц, увеличивается.

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

Схождение уже произошло. Современная наука о данных сейчас занимается разработкой более 95% из нас.

Человек

Инженер, имеющий опыт работы с данными, по праву может воспользоваться этой новообретенной доступностью. У этих библиотек есть надежная документация. Опытные профессионалы публикуют контрольные списки, в которых говорится, что делать и чего не делать в часто встречающихся ситуациях. Доступны исследовательские работы, опубликованные и рецензируемые экспертами по широкому кругу вопросов. Они действуют как маяки. Все остальное, что находится между ними, можно найти на - Stack Overflow, Medium, YouTube, Stats.StackExchange и т. Д.

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

Современный специалист по данным может построить модель поверх транзакционных данных, используя следующий SQL-код, и немедленно начать выполнение прогнозов:

CREATE OR REPLACE MODEL m
TRANSFORM(ML.FEATURE_CROSS(STRUCT(f1, f2)) as cross_f,
ML.QUANTILE_BUCKETIZE(f3) OVER() as buckets,
label_col)
OPTIONS(model_type=’linear_reg’, input_label_cols=[‘label_col’])
AS SELECT * FROM t

Ссылка - РЕГРЕССИЯ BigQuery - СОЗДАТЬ МОДЕЛЬ

Мой опыт показывает, что поведение важнее степени. Способность изменить свое мнение по мере появления новой информации очень важна. Любопытство помогает находить решения. Необходимы сильные коммуникативные навыки. Они помогают выполнять поиск в Интернете. Способность противостоять людям, цитирующим точки данных, двигает разговоры в правильном направлении. Хороший кандидат в области науки о данных часто бывает начитанным. Такое слияние технических ноу-хау, навыков программирования и знаний предметной области помогает с применимостью. Программное обеспечение идет в ногу со временем и делает специалистов по анализу данных невероятно продуктивными. Эти вышеупомянутые черты позволяют человеку легко использовать такое программное обеспечение, не беспокоясь о нем.