Применение науки о данных к науке о данных: глубокое погружение в самые популярные технологии в мире науки о данных в 2020 году.
Копаться в
В этой статье рассматривается то, о чем онлайн-сообщество Data Science писало за последние пару лет, с целью понимания тенденций в технологиях в течение 2020 года. Для этого я взял около 30 000 уникальных данных. Научные истории со всего Медиума с января 2019 года по середину декабря 2020 года.
Эта статья разбита на две части:
- Технологии - в этом разделе подробно рассматриваются технологии, о которых мир Data Science писал и отвечал в этом году. Он включает рейтинги популярных программных инструментов, языков программирования и платформ, а также некоторые комментарии.
- Сообщество. Сообщество Data Science исторически динамично и амбициозно, но этот год был тяжелым для многих из нас. В этом разделе рассматривается, как писательская часть сообщества отреагировала на события этого года с точки зрения публикаций, качества и активности.
Этот пост (часть 1) посвящен технологиям . Вторая часть этой статьи будет посвящена сообществу и будет выпущена в ближайшие недели.
Технологии
Технологии приходят и уходят в любой области, но в такой области, как Data Science, которая все еще находится в процессе утверждения себя и своих «стандартных» инструментов и методологий, это особенно верно. Новые технологии накатывают на волне ажиотажа, и такое же количество людей тихо скрывается в безвестности. Учитывая, насколько быстро эта область развивается, понимание того, какие технологии обсуждает сообщество, может дать нам опережающий индикатор того, где эта область будет развиваться в среднесрочной перспективе.
Вот о чем этот раздел: о каких технологиях сообщество Data Science (на Medium) обсуждало за последний год? Какие технологии вызывают наибольший энтузиазм?
Для простоты я разделил рассматриваемые мной технологии на следующие области:
- Программные инструменты - инструменты и библиотеки, которые составляют современный стек программного обеспечения для науки о данных. Эти инструменты и библиотеки взяты с разных языков.
- Языки программирования - языки программирования, часто используемые профессионалами в области науки о данных.
- Облачные платформы - платформы, предназначенные для поддержки развития облачной инфраструктуры.
- Платформы Data Science - платформы, специально разработанные для облегчения современных рабочих процессов в Data Science.
При оценке этих областей я также использовал два подхода к ранжированию. Первый - это просто рейтинг по абсолютному количеству упоминаний (т. Е. Количеству статей, в которых упоминается технология). Это хорошо для того, чтобы увидеть, как часто тот или иной инструмент или язык появляется в отобранных статьях, и каким-то образом указывает на «проникновение» технологии, но не обязательно указывает на то, что интересует сообщество.
Чтобы попытаться лучше понять этот последний момент, я принял вторую схему ранжирования, которая ранжирует данный набор технологий по их средней популярности (на среднем языке: аплодисменты). Это все еще несовершенная мера, но она, как правило, дает лучшее представление об относительной популярности конкретной технологии с точки зрения проявленного к ней энтузиазма.
Давайте копаться.
Программные инструменты
Во-первых, программные инструменты! Для многих специалистов по анализу данных применение этих инструментов для решения бизнес-задач составляет значительную часть их трудовой жизни. Я составил программные инструменты, рассматриваемые в этом списке, вручную составив список общих поисковых запросов и регулярно обсуждаемые инструменты в постоянно популярном формате топ-10 блогов. Это оставляет меня уязвимым для потенциальных предубеждений при сборе данных, но я попытался приложить усилия, чтобы уделять равное внимание инструментам из всей экосистемы программного обеспечения Data Science.
Самые упоминаемые инструменты
Начнем с наиболее часто упоминаемых инструментов. Вот 10 самых упоминаемых технологий на 2020 год:
В период с 2019 по 2020 год в топ-10 не произошло никаких изменений. Это неудивительно с точки зрения того, что эти инструменты максимально близки к неизменно популярным технологиям в этой области. Также новички в области Data Science часто начинают с написания вводных статей именно об этих технологиях, что может объяснить регулярность их упоминаний. Тем не менее, довольно поразительно, что, по моим подсчетам, pandas
- библиотека для обработки табличных данных для Python - фигурирует в 15% всех статей, опубликованных за последний год.
Самые популярные инструменты
В то время как самые популярные инструменты по упоминанию довольно статичны с течением времени, их популярность была гораздо более изменчивой. Вот 10 лучших технологий в данном случае:
В этом рейтинге нет серьезных сюрпризов, но есть несколько интересных тенденций. Рейтинг смещен в сторону инфраструктурных технологий: технологий, используемых для создания и развертывания производственных систем машинного обучения. Я считаю, что шесть инструментов из этого списка попадают в эту категорию (Docker, Flask, Kubernetes, Kubeflow, Airflow, Dask). Это особенно заметно, поскольку в этом списке относительно мало актуальных технологий машинного обучения, и только PyTorch и PyCaret (интересная новая низкокодовая библиотека машинного обучения) делают сокращение. Завершают список два инструмента визуализации в виде bokeh
и Streamlit.
Неудивительно, что Streamlit занимает первое место в этом рейтинге. С точки зрения ажиотажа Streamlit - одна из самых больших историй в области технологий Data Science за последние пару лет. Лично я считаю, что это фантастический комплект. За последний год он вошел во многие мои личные и профессиональные проекты, и пользоваться им очень приятно. Если вы хотите узнать больше о Streamlit и о том, как начать работу, вот статья, представляющая ее с кратким руководством по развертыванию приложений Streamlit в Google Cloud:
Для меня особенно интересно присутствие инструментов инфраструктуры в этом списке. Как ни странно, в последние пару лет наблюдается постоянный рост интереса и осведомленности о концепциях и инструментах типа ML Ops / ML Engineering в более широком сообществе Data Science, и это может быть отражено здесь: наличие современные инструменты разработки программного обеспечения, такие как Docker и Kubernetes, а также инструменты управления рабочими процессами данных / машинного обучения, такие как Airflow и Kubeflow, безусловно, указывают в этом направлении. Сообщество Data Science находится в начале события видообразования, когда аналитики отделяются от инженеров?
Интересно также, что Даск пополз в этот список. Если вы не знаете, Dask предоставляет инструменты для выполнения функций распределенной аналитики для пользователей числовой и научной экосистемы Python. Другими словами: он чем-то похож на более старый (и более тяжелый) Spark по способности обрабатывать очень большие объемы данных, но, в отличие от Spark, он обеспечивает отличную нативную совместимость с хорошо -установленные научные вычислительные инструменты Python. С этой точки зрения это привлекательное предложение для практиков, не знакомых с экосистемой Spark и Java, но знакомых с основным набором инструментов для научных вычислений Python. Я подозреваю, что популярность Даска в сообществе в ближайшие годы будет расти.
Языки программирования
Языки программирования - одна из наиболее спорных тем в сообществе Data Science. Кажется, что у каждого есть свой фаворит, и мы все очень быстро сообщаем об этом другим. Я подозреваю, что языковые войны, характерные для некоторых утомленных сравнений языковых характеристик, преувеличены: в мире есть место для них всех! Для этого раздела я взял языки, рассматриваемые в анализе, из лучших языковых рейтингов 50 языков TIOBE.
Самые обсуждаемые языки
Начнем с самого простого рейтинга: как часто за последний год обсуждались разные языки? Вот 5 лучших языков 2020 года по упоминанию:
Как и следовало ожидать, в разговоре преобладают статьи, посвященные Python. Это неудивительно: Python - это язык, который является идеальным стартовым языком как для новых поклонников науки о данных, так и для профессиональных групп специалистов по науке о данных и инженеров. Он находится в чем-то вроде золотой середины между производительностью и возможностями: он имеет богатую и относительно зрелую экосистему библиотек и инструментов, которые охватывают большинство сценариев использования современного программного обеспечения, от облачных вычислений до приложений Интернета вещей и - что наиболее актуально. здесь - научные и числовые вычисления. Другими словами: у него огромное активное сообщество с разным уровнем навыков и опыта, что в некоторой степени объясняет преобладание упоминаний в блогах по Data Science.
Что еще более удивительно в этом списке, язык программирования Java ставит R на второе место. В современном наборе инструментов для науки о данных Java (и его родственный язык без рейтинга Scala) часто рассматривается как язык выбора при решении проблем больших данных. Подобно тому, как Python может действовать как общий язык для инженеров-программистов и специалистов по обработке данных, Java может играть аналогичную роль для больших данных и приложений инженерии данных. Это эффективный язык с сильной родословной и очень развитой экосистемой. Пока подобные Spark (и Databricks) продолжают использоваться и увеличиваются в использовании, его популярность, вероятно, будет продолжать расти и в сообществе.
Из оставшихся трех языков в этой пятерке лидеров R является наименее неожиданной записью. Как язык, созданный с самого начала для приложений статистических вычислений, это язык с некоторыми отличными функциями, который имеет тенденцию преуспевать при изучении и моделировании табличных данных. Хорошо это или плохо, но у него нет универсальности (и соответствующей экосистемы) или массового следования Python, но он бесценен для вариантов использования в той нише, которую он заполняет. По моим подсчетам, в этом году наблюдалось небольшое снижение упоминаний по сравнению с другими языками, входящими в пятерку лучших. Он также рос самым медленным из них.
Трудно сказать, является ли это частью более общего замедления в сообществе R, хотя беглый взгляд на CRAN (реестр пакетов с открытым исходным кодом R) показывает, что количество новых вкладов (то есть новых пакетов) в CRAN имеет тенденцию вниз за последние пару лет. Чтобы немного прояснить это, вот диаграмма, показывающая количество новых пакетов, выпущенных из выборки ~ 3500 пакетов на CRAN (~ 20% от общего количества опубликованных пакетов):
Стоит отметить, что это снижение может быть признаком изменений в экосистеме R, которые вполне могут быть положительными (например, консолидация в сторону стандартных инструментов), хотя такое резкое снижение количества новых пакетов вряд ли предвещает быстрый рост ее пользовательской базы. / сообщество в любом случае.
Одна из наиболее интересных статей здесь - это Javascript. Javascript традиционно считался языком "внешнего интерфейса": он отлично подходит для создания хороших веб-интерфейсов, но менее хорош для всего остального. С появлением NodeJS и последующим всплеском внедрения Javascript во всем программном стеке, Javascript часто становится языком выбора для многих инженерных команд, а мышление только для внешнего интерфейса уже давно устарело.
Несмотря на это, он, как правило, плохо поддерживал приложения для научных вычислений и, следовательно, не получил широкого распространения в сообществах специалистов по науке о данных и машинному обучению. Тем не менее, с появлением TensorFlow JS и других подобных инструментов, а также с необходимостью использования Javascript (и, возможно, тесно связанного с ним языка Typescript) для расширения и изменения популярных инструментов, таких как JupyterLab и Streamlit, Javascript становится полезным языком в мире науки о данных. Если вы еще не использовали TensorFlow JS, стоит взглянуть на него:
Наконец, C ++ проникает сюда по уважительной причине: C ++ - это язык, который поддерживает реализацию / время выполнения трех из других четырех языков в этом списке (Python, R и Javascript) и играет решающую роль в оптимизированных реализациях многих алгоритмы в популярных пакетах Data Science, таких как TensorFlow, LightGBM и Scipy и многие другие. Однако, несмотря на его полезность, он не получил широкой известности в сообществе Data Science в целом, поэтому он занимает определенную нишу, будучи одновременно очень полезным и новым. Это может каким-то образом объяснить его место в этом списке.
Самые популярные языки
Хотя топ-5 языков только по упоминаниям не изменился за последний год, самые популярные языки (по средней популярности статей, ссылающихся на этот язык) изменились гораздо больше. Вот 5 самых популярных языков 2020 года:
Я принял решение опустить здесь истинный язык с самым высоким рейтингом: Вперед. Всего в этом году на Go было написано всего около 30 статей, и они почти всегда показывали выше среднего с точки зрения вовлеченности читателей. Однако, написав так мало статей, я принял решение удалить его из рейтинга. Следует отметить одно важное наблюдение: в этом списке фигурируют только три из 5 языков, наиболее часто упоминаемых по упоминанию: Java, Javascript и C ++. Куда делись R и Python?
Чтобы разобраться в этом, я извлек из корпуса несколько тем и стилей и назначил каждой статье основную тему и стиль. Не вдаваясь в подробности, оптимальное количество тем и стилей было найдено с помощью Анализ стабильности тем (с использованием конвейера извлечения TF-IDF и NMF) и Анализ силуэта (с использованием ручного анализа). созданные функции и кластеризация K-средних) соответственно. В ходе этого процесса были определены пять согласованных тем и четыре преобладающих стиля, показанных в таблицах ниже.
Если мы посмотрим на темы, которые я связал со статьями, в которых упоминается каждый из языков, доля статей, связанных с каждой темой, будет выглядеть следующим образом:
Как и следовало ожидать, эти языковые рейтинги (частично) зависят от темы, стиля и новизны. По этим параметрам и Python, и R проигрывают, частично из-за своей повсеместности, но также и из-за стилей письма, общих для каждого лагеря. Поскольку статистика и вероятность являются наименее популярными из выявленных тематических групп, неудивительно - если немного грустно - то, что R не получает той видимости, которой он вполне может заслужить. Эту корреляцию также можно увидеть, сравнив преобладающие стили R и Python с корпусом в целом:
Из этого мы видим, что Python имеет избыток статей в стиле «Filler» (короткие статьи с низким содержанием - второй наименее популярный вариант) и количество « Информативные »статьи (более длинные, содержательные статьи - самый популярный стиль статей). В этом есть смысл: писать о какой-то заезженной причуде Python - обычная тема первого блога для новичков, и в корпусе таких сообщений огромное количество.
Напротив, R имеет больше среднего количества статей в стиле «Технический» (технически насыщенные и обычно недоступные статьи - наименее популярный стиль статей). Они, как правило, менее доступны и, учитывая, что большая часть из них, как правило, также являются статьями относительно технической статистики, в результате статьи R имеют тенденцию получать меньше внимания в более широком сообществе Data Science.
Самая интересная для меня запись в этом списке - Swift. Это замена языка Objective C от Apple с открытым исходным кодом, который теперь лежит в основе большинства программных продуктов Apple. Недавно он был принят в качестве языка выбора для следующего поколения инструментов TensorFlow нижнего уровня. Swift хорошо подходит для этого приложения: это статически типизированный язык с некоторыми впечатляющими языковыми функциями, которые делают его быстрым и (в целом) подходящим для массивных высокопроизводительных приложений. Если вы еще не слышали об этом, стоит прочитать:
В более общем плане интересно наблюдать появление таких языков, как Swift, Javascript и Go, в сообществе Data Science. Еще не существует «настоящего» современного статически типизированного языка, который можно было бы легко подобрать и использовать (возможно, за исключением Java / Scala, если вы считаете, что предыдущее утверждение верно!) С возможностями, которые может ожидать средний специалист по данным. Будучи хорошо продуманными и удобными для пользователя языками, я надеюсь, что Swift или Go все же могут претендовать на эту корону. Будет интересно увидеть, как все будет развиваться в следующие несколько лет.
Платформы
Похоже, что в наши дни все создают платформы - и во многих случаях не зря. Для целей анализа в этом разделе мир платформ разбит на две половины: облачные платформы и платформы Data Science. Здесь я рассматриваю первую как более общую облачную платформу, способную создавать и развертывать практически любую форму современного программного обеспечения, а во втором я рассматриваю платформы, специально, предназначенные для содействия науке о данных. работы и, следовательно, нацелены на специалистов по анализу данных как на их основную личность. Я взял платформы, рассматриваемые здесь, непосредственно из Магического квадранта Gartner 2020 Data Science Platform Magic Quadrant.
Облачные платформы
Менее чем за 15 лет облачные гиганты «большой тройки» пришли к власти в большей части современной сети. Они также играют важную роль в нынешней волне технологий искусственного интеллекта и машинного обучения, пытающихся найти свой путь на рынке (и в исследовательском сообществе тоже). Сделав вычисления дешевыми и быстродействующими, они позволили многим из этих технологий развиваться быстрее, чем они могли бы сделать в противном случае. Теперь можно развернуть подобную суперкомпьютеру машину за секунды и использовать ее за несколько долларов в час. Такой уровень стоимости и гибкости в значительной степени волшебный.
Помимо самой инфраструктуры, большая тройка также играет ключевую роль в развитии базовых технологий, например, MxNet (AWS) и TensorFlow (Google), которые являются столпами стратегии ИИ соответствующих облаков. Каждый из них также имеет в своем портфеле растущий спектр технических, низко-кодовых и бескодовых продуктов машинного обучения, и кажется очевидным, что ИИ и машинное обучение считаются центральными аспектами долгосрочной стратегии этой платформы. Учитывая объем данных, которые эти приложения должны хранить, количество вычислительных ресурсов, часто необходимых для обработки этих данных, и скорость, с которой оба эти фактора растут, это определенно разумный бизнес-шаг - при условии, что не будет новой AI Winter.
Таким образом, отношение сообщества Data Science к этим платформам, вероятно, будет становиться все более важным и уже проясняется. Давайте сначала посмотрим на популярность:
Примечание. «C изменение (%)» здесь (и ниже) относится к годовому изменению общего количества опубликованных статей, ссылающихся на данную платформу.
В этом рейтинге GCP лидирует по популярности, и количество статей, в которых он упоминается, также быстро выросло. Если вы посмотрите на популярность соответствующих облаков за последние два года или около того на рисунке 2, вы увидите, что GCP в последнем квартале продемонстрировала относительно стабильное лидерство по общей популярности.
Однако, если мы перевернем это и посмотрим на абсолютные упоминания, история немного изменится. На рисунке 3 показано количество упоминаний каждой платформы в процентах от общего количества упоминаний облачных платформ. В этом случае AWS явно доминирует, хотя есть признаки того, что это лидерство постепенно сокращается из-за роста как GCP, так и Azure.
Я подозреваю, что в ближайшие годы в сообществе Data Science будет возрастать конкуренция за умственные способности, особенно по мере того, как эта область продолжает развиваться и «стек машинного обучения» начинает укрепляться. Большая часть элитной недвижимости все еще находится в продаже.
От себя лично интересно увидеть относительную популярность GCP в сообществе. На мой взгляд, процесс подключения к GCP чище и проще, чем в Azure и AWS, документация в целом отличная (в отличие от), а цены прозрачны. С устоявшимися предложениями, такими как Cloud Run, DataFlow, Firebase (включая Firebase ML) и тесной интеграцией с экосистемой TensorFlow, а также их родословной в мире машинного обучения и искусственного интеллекта, мой инстинкт что GCP быстро становится самой привлекательной платформой для инфраструктуры ИИ. Конечно, я тоже привык использовать его в своих личных проектах. Если вам интересно прочитать больше в этом ключе, вот одна из моих статей на эту тему:
Бессерверное машинное обучение: масштабное развертывание облегченных моделей
Внедрение моделей машинного обучения« в производство в виде масштабируемых API может оказаться сложной задачей. В этом посте рассматривается один из вариантов создания модели… todatascience.com »
Платформы Data Science
За последние несколько десятилетий появилось множество аналитических платформ. В самом деле, в блестящем новом мире Data Science все еще есть ряд действующих аналитических компаний. Однако растет и число новых детей. Пожалуй, наиболее авторитетными глобальными игроками этого нового поколения являются Databricks и Domino Data Labs. Есть и другие, такие как H2O.ai, Dataiku и DataRobot, каждый из которых активно борется за корону корпоративного ИИ, каждый со своим особым вкусом и перспективой.
Я изучил несколько из этих платформ и обнаружил, что Databricks и Domino могут предложить, хотя H2O.ai и Datarobot предлагают некоторые интересные функции с низким уровнем кода. Согласен ли сообщество? Вот о чем они говорили:
Здесь лидируют Databricks, хотя относительное увеличение количества статей, на которые они ссылаются, также меньше. Напротив, количество опубликованных статей, в которых упоминается Domino, выросло относительно быстро, и с точки зрения популярности он практически не уступает Databricks. Будет интересно посмотреть, каков будет эффект от быстрого роста количества публикаций, ссылающихся на Dataiku и RapidMiner, и повлияет ли это на их относительную популярность и узнаваемость в течение следующих нескольких лет.
Однако все выглядит немного иначе, если мы посмотрим на абсолютные упоминания с течением времени, как показано на рисунке 4. В этом случае Domino явно лидирует по общему количеству упоминаний. Однако также ясно, что последние пару лет это были в значительной степени состязания на двух лошадях: 70% или более всех упоминаний платформ обычно приходятся только на Domino и Databricks. Это может сигнализировать о растущей дуополии в сознании сообщества Data Science. Тем не менее, в этом году постоянно растет количество статей, опубликованных как об Alteryx, так и о DataRobot, так что это еще не конец.
Увидимся в следующий раз
Это все для этого поста. Обязательно ознакомьтесь с частью 2, которая будет доступна очень скоро. Если у вас есть какие-либо вопросы или отзывы, или, возможно, какие-то идеи о том, что еще я должен искать в наборе данных, не стесняйтесь писать мне сообщение в Twitter или добавлять меня в LinkedIn.
Эта статья изначально была размещена здесь: