Перевод | R для исследований, Python для производства

анализ данных

Оригинал: R для исследований, Python для производства

Мэтт Данчо и Джаррелл Чалмерс, 18 февраля 2021 г.

Переводчик: Чжан Цзинсинь

Перепечатано с:R&PythonНаука о данных

об авторе:

Matt Danchoявляется бизнес-научной компанией (woohoo.бизнес-наука.IO)Основатель консалтинговой фирмы, которая помогает организациям применять науку о данных в бизнес-приложениях. он пакет RtidyquantиtimetkАвтор, работает в области бизнес- и финансового анализа в области науки о данных с 2011 года. Мэтт имеет степень магистра в области бизнеса и инженерии и имеет большой опыт в области бизнес-аналитики, интеллектуального анализа данных, анализа временных рядов, статистики и машинного обучения.

И R, и Python великолепны. В этой статье мы поговорим о некоторых преимуществах каждого языка, показав основной прогресс в соответствующих экосистемах.

1. R для исследования

Если бы мне пришлось описать R одним словом, это было бы:tidyverse. Это поможет вам выполнять свои исследовательские задачи — манипулировать данными, визуализировать результаты, переходить от идеи к коду — без стресса или, точнее, с удовольствием. использовать нижеОкончательная шпаргалка по Rобъяснить, почемуR для исследований.

Чтобы начать изучать R, tidyverse — идеальное место для начала вашего путешествия. Это канонический набор пакетов и инструментов с последовательным структурированным программным интерфейсом, тогда как база R значительно сложнее и менее удобна для пользователя.

Мы можем найти много небольших R-пакетов, решающих определенные проблемы, но вот самые важные:

Dplyr&ggplot2

Два мощных пакета, которые помогут вам принимать повседневные решения, — это dplyr и ggplot2, которые отлично подходят для обработки и визуализации данных. Это два самых важных навыка, которыми может обладать ученый или аналитик данных.

Rmarkdown

Без сомнения, одной из самых сильных сторон R является Rmarkdown, фреймворк для созданияВоспроизводимый отчет, презентации, блоги, журналы и многое другое! Представьте, что у вас есть отчет, который вы можете запустить, и создать удобную HTML-страницу или PDF-файл, чтобы поделиться с вашей командой. Это определенно более приятно, чем сотни раз щелкать мышью в Excel каждое утро понедельника.

Shiny

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

где рост R

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

Вы можете видеть, что R был расширен до:

  • временные ряды и прогнозирование: модельное время и timetk
  • Финансовый анализ (и другие области): tidyquant, квантмод
  • Сетевой анализ и визуализация: tidygraph и ggraph
  • Анализ текста: аккуратный текст и рецепты
  • Геопространственный анализ и визуализация: Тематическая карта
  • машинное обучение: h2o, tidymodels и mlr3verse[Примечание]

Примечание: Исходный текст — mlr3, я думаю, что лучше изменить его на mlr3verse.

Чего еще не хватает в R?

В производственной сфере есть явные пробелы. В R есть Shiny (приложения) и Plumber (API, не показаны), но инструменты автоматизации, такие как Airflow и комплекты для разработки облачного программного обеспечения (SDK), в основном доступны на Python.

Резюме R

R действительно особенный при использовании для исследований из-за tidyverse, который упрощает обработку данных и визуализацию. Честно говоря, как только вы освоите tidyverse, вы станете в 3-5 раз более продуктивными при работе с данными в R.

2. Чем хорош Python?

Python тоже великолепен, но по какой-то причине давайте возьмем пакет Python, такой как OpenCV — он для компьютерного зрения.

В этом настоящая сила Python, потому что мы можем делать безумно классные вещи с OpenCV, например, обнаружение объектов.

Но как это влияет на мою повседневную жизнь? около нуля. Зачем? Потому что я бизнес-аналитик и специалист по данным, работающий с базами данных SQL. Меня больше интересует, как Python может помочь мне лучше добывать информацию и использовать результаты в производстве.

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

图片

Как видите, в основном все, что связано с импортом, очисткой и обработкой данных, выполняется пакетом pandas. Итак, что такое панды? Pandas для манипулирования данными в Pythonобъектно-ориентированные инструменты.

Pandas vs Tidyverse

Хотя программисты любят панд, бизнес-аналитики могут изначально не привыкнуть к этому объектно-ориентированному (в стиле Python) способу иметь фреймы данных с методами:

customer_counts_df = df.group_by('customer_id').value_counts()

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

Вместо этого tidyverse в R использует другой синтаксис: обозначение вертикальной черты (%>%). Это очень похоже на SQL и поток обработки данных, воображаемый пользователями.

customer_counts_tbl <- df %>% 
  group_by(customer_id) %>% 
  summarize(count = n())

Этот аккуратный рабочий процесс обработки данных позволяет аналитикам данных масштабировать последовательность операций до 10 и более. Помните, задача состоит не в том, чтобы ввести код, а в том, чтобы превратить свои мысли в код. Вот где tidyverse действительно сияет.

Главное преимущество Python — это Production ML.

Итак, почему Python полезен для бизнеса? Оказывается, его сильные стороны заключаются в машинном обучении и производстве!

Вы можете видеть, что Python имеет хорошо зарекомендовавшие себя инструменты, ориентированные на машинное обучение:

  • автоматизация: Воздушный поток, Луиджи
  • Cloud-AWS, Google Cloud и Azure Software Development Kits
  • машинное обучение:Скит учиться
  • Глубокое обучение и компьютерное зрение: PyTorch, TensorFlow, MXNet, OpenCV
  • NLP: spaCy, NLTK

Эти инструменты, ориентированные на производство, упрощают работу с этими людьми: взаимодействие с облаком, работа в составе большой ИТ-команды, поскольку они уже используют Python. Нет необходимости включать R и любые другие зависимости в производственную систему.

PythonСводка

Если вы сможете преодолеть кривую обучения Pandas, Python может стать отличным инструментом. Большинство ИТ-команд знают Python, поэтому ваш код идеально впишется в их рабочий процесс. Просто поймите, что ваша производительность в исследованиях может быть в 3-5 раз ниже, чем у ваших коллег в R, из-за ускорения tidyverse.

Какой язык выучить?

Решение может быть сложным, потому чтоИ Python, и R имеют явные преимущества.

  • R отлично подходит для исследований: визуализируйте, анализируйте данные, создавайте отчеты и создавайте приложения уровня MVP с блеском. От концепции (идеи) до исполнения (кода) пользователи R часто могут выполнять эти задачи в 3–5 раз быстрее, чем пользователи Python, что делает исследовательскую работу очень эффективной.
  • Для производства Python является экстраординарным: Интегрируйте модели машинного обучения в производственные системы, где ваша ИТ-инфраструктура зависит от инструментов автоматизации, таких как Airflow или Luigi.

Почему бы не изучать Python и R вместе?