Оригинал: 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 вместе?