Языки программирования Python и R давным-давно стали стандартом для Data Science. Сущность их противостояния в том, что оба языка хорошо подходят для работы со статистикой. В то время как Python характеризуется понятным синтаксисом и большой численностью библиотек, язык программирования R разрабатывался преднамеренно для специалистов по статистике, а поэтому оснащён высококачественной визуализацией данных. Особняком стоит SQL — потому что, если данные уже лежат в таблицах, то это скорее везение, чем повод для расстройств, — и Scala — в основном благодаря тому, что на ней написан популярнейший фреймворк распределённой обработки данных Spark.
Чтобы провести первичный анализ данных и принять решение о дальнейшей судьбе фичи, довольно средств одного лишь SQL и командной строки, ведь Data Science — это, в первую очередь, не про библиотеки с эффектными названиями, а про подход. Тем не менее, подобный минимализм имеет свои пределы (а начинающего вообще сможет отпугнуть), и в какой-то момент всё же придётся обратиться к более продвинутым инструментам исследования.
В этой статье мы выделили для вас некоторые недостатки и превосходства R и Python в качестве первых языков программирования в карьере data scientist’а. А так же разработчикам, желающим добавить строчку с полезным навыком в резюме, также должно быть довольно интересно.
Python
За свою тридцатилетнюю историю Python несколько раз перерождался, терял обратную совместимость, но все равно всегда оставался достаточно популярным и среди разработчиков в общем, так и среди data scientist’ов.
Преимущества Python в Data Science
- Простой, но выразительный синтаксис. Требование знания английского языка на уровне начальной школы — это уже преимущество, потому что азы Python можно считать освоенными. Далее будет не особо сложнее. Если вы уже были знакомы, например, с языком программирования Java, то вы будете приятно удивлены тем, как легко сказать миру «здравствуй».
- Богатый выбор библиотек. Речь идет не только о библиотеках алгоритмов машинного обучения — на Python ведут разработки облачных хранилищ, стриминговых сервисов, и даже игр.
- Высокая культура документации. Python замечательно документирован, и обычно библиотеки на нём продолжают эту традицию.
При всём своём превосходстве, у Python есть и несколько минусов. Этот язык часто называют медленным, ему всё ещё не хватает удобных средств ORM, а написание и правда большого проекта на нём — достаточно тяжкий труд, который требует хорошей дисциплины. Но все таки как и с любыми другими инструментами, немаловажно просто знать, как им пользоваться.
Python-инструменты для data scientist
Как уже упоминалось, Python примечателен своими обширными библиотеками и инструментами. Если говорить о data science, то нужно в самую первую очередь упомянуть следующие:
- Pandas – библиотека для манипулирования данными с огроменными возможностями (Одно из главных преимуществ Python). Позволяет очень очень быстро провести исследования новых данных, протестировать гипотезы, получить отчёты.
- Scikit-learn – большая библиотека алгоритмов машинного обучения свободного программного обеспечения для языка программирования Python и предиктивного анализа данных.
- Keras и PyTorch – библиотеки, используемые для обучения глубоких нейронных сетей. Подходят для задач, связанных с изображениями, аудио и видео файлами. Keras хорош в кейсах для перевода, распознавании изображений, речи и т.п. PyTorch используется в основном, чтобы обучать модели быстро и эффективно, поэтому это выбор большого количества разработчиков.
- IPython Notebook – интерактивная оболочка для языка программирования Python, которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автоматическое дополнение. Это графический интерфейс, открываемый в браузере и представляет из себя последовательность ячеек, в которых можно писать и исполнять код, при этом используя общую память для хранения данных.
R
На сегодняшний день язык R остаётся в списке наиболее популярных для статистики и Data Science. Со значительным перевесом лидируют вопросы академического характера: в самую первую очередь, R — это язык программирования с богатейшим набором библиотек по машинному обучению и статистике, что невообразимо важно в исследовательских целях.
Преимущества R в Data Science
- Огромное количество библиотек статистических методов и Богатая ML экосистема. Как и было замечено раньше, язык R пользуется большой популярностью в академической среде, что приводит к имплементированию новых методов впервые именно на нем.
- Удобная проприетарная среда разработки RStudio, с которой не сложно разобраться, особенно если вы имеете хотя бы небольшой опыт в программе MATLAB.
- Нестандартный синтаксис, который заточен под нужды статистики. Программист с опытом и знанием другого языка программирования может столкнуться с трудностями “акклиматизации”, но важно отметить, что пользователи с математическим бэкграундом легко воспримут логику языка.
- Нативная поддержка векторных вычислений. Отличный бонус, который означает, что на R можно программировать довольно быстрые реализации математических методов, использующих матричные и векторные вычисления.
R-инструменты для data scientist
Поговорим о богатствах библиотек языка программирования R. Ниже представлены некоторые базовые, но мощные библиотеки, вооружившись которыми можно провести обширный Рисерч:
- Dplyr – в первую очередь это набор функций, предназначенных для обеспечения интуитивно понятного и удобного управления кадрами данных (грамматика манипуляций с данными), аналогичной Pandas.
- Ggplot2 – пакет визуализации данных с открытым исходным кодом для языка статистического программирования R. Это система для декларативного создания графики, основанная на грамматике графики. Вы предоставляете данные, рассказываете ggplot2, как сопоставлять переменные с эстетикой, какие графические примитивы использовать, и он заботится о деталях.
- Esquisse – пакет R, который создает простые диаграммы ggplot с помощью интерфейса перетаскивания. Вы можете использовать всплывающий пользовательский интерфейс для создания идеального графика, а затем экспортировать результаты в формате .png,. jpg или экспортировать код.
- Shiny – программная среда, предназначенная для удобства создания на основе языка программирования R интерактивных веб-приложений с графическим интерфейсом пользователя..
- Caret, randomForest, Mlr и т. д. – десятки библиотек с методами машинного обучения.
Python vs. R в Data Science: что лучше?
Оба эти языка программирования имеют свои некоторые достоинства и недостатки. Подойти для вас может любой из них, но всё зависит от ваших задач. Некоторые моменты, которые могут помочь вам с выбором языка:
- Изучали/работали ли вы уже с другими языками программирования? Если ваш ответ “да”, то, вероятно вам может потребоваться некоторое время, чтобы привыкнуть к языку R. Python будет для вас гораздо привычнее, за исключением некоторых незначительных нюансов.
- Работаете/планируете ли вы работать в научной области, или склоняетесь к тому, чтобы быть ближе к практике? Python больше приближен к продакшену и намного чаще применяется в коммерческих проектах. А вот R пользуется популярностью в академических кругах.
- Есть ли у вас желание прокачать кругозор в методах машинного обучения? Или же вам будет достаточно ознакомиться с несколькими самыми популярными методами и больше посвятить своего времени на что-то иное? В первом случае вам без сомнений нужен язык R, а вот во втором случае – больше возможностей вы найдёте в Python.
- Есть ли у вас желание заниматься внедрением своих разработок, и программировать что-либо кроме предикторов? Если ваш ответ “да”, то Python вам подойдёт намного больше, но имейте ввиду, что скорее всего вам понадобится и ещё какой-нибудь язык программирования (например Java, Scala или C++).
Один ответ
Я не в коем случае не хейтер R, но было бы здорово увидеть хотя бы пару примеров, когда метод ML (именно ML, а не библиотека из статистики в целом) есть в R, но в Python отсутствует…
И странно, с неплохим, как я считаю математическим опытом в R я так не въехал, может слабо пытался. Можете рекомендовать руководство по R для людей с опытом в программировании?