Мнение

Как Python обогнал R в области машинного обучения

Как Python обогнал R и стал стандартом в области науки о данных.

Вступление

Примерно десять лет назад идея машинного обучения Pythonic была лишь проблеском и проблеском в глазах многих специалистов по данным. Одним из самых популярных языков, используемых для статистики в то время, был R, который также был многообещающим в области машинного обучения. Однако, как вы, скорее всего, знаете, это уже не так, и Python завоевал корону не только как самый популярный язык для машинного обучения, но и как самый популярный язык в целом.

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

Юзабилити

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

С другой стороны, Python - это прежде всего объектно-ориентированный язык программирования. Это объясняет дружелюбие Python по сравнению с R, потому что во многих отношениях программисты могут найти использование объектов с простыми функциями намного проще, чем методизированные функциональные возможности с полиморфизмом. Вдобавок ко всему, Python изначально не создавался для статистических вычислений и, как следствие, больше подходит для программирования общего назначения.

Хотя эти различия могут мало что значить для тех, кто занимается только статистическими вычислениями, они, вероятно, много значат для тех, кто хочет подойти к машинному обучению с более технической и менее научной точки зрения. Другими словами, Python, безусловно, является языком, который больше ориентирован на каждого программиста, чем только на статистиков.

Различия в удобстве использования не ограничиваются использованием и парадигмами. Давайте посмотрим правде в глаза,

Pip превосходит «менеджер пакетов» R.

В защиту R менеджеры пакетов определенно не относились к тому времени. Несмотря на это, даже если бы R прямо сейчас выпустил фантастический менеджер пакетов, он, скорее всего, не смог бы конкурировать с удобством Pip. Pip делает управление всеми вашими библиотеками Python невероятно простым, что, в свою очередь, значительно упрощает изучение того, как использовать пакеты в Python. Были попытки создать лучший менеджер пакетов для R, например PackRat - это инструмент, который вам, вероятно, стоит подобрать, если вам нравится программировать на R.



В некотором смысле Packrat похож на QuickLisp менеджеров пакетов R. Конечно, в этом аспекте R становится жертвой того времени, в которое он был выпущен.

Представление

Невероятно сложно говорить о машинном обучении без обсуждения производительности. В конце концов, есть причина, по которой компьютеры с глубоким обучением обычно оснащены несколькими видеокартами и серверными процессорами. Python, возможно, не обладает самой высокой производительностью в мире, но, безусловно, делает шаг вперед по сравнению с R. Вот несколько микротестов, выполненных Julia computing, которые показывают, насколько велико различие между этими языками во многих операциях:

Хотя, безусловно, бывают ситуации, когда R опережает Python, по большей части Python, безусловно, является лучшим исполнителем из двух. Это, конечно, объясняет меньшую жизнеспособность машинного обучения внутри языка программирования R. В то время как R, как и Python, безусловно, может извлечь выгоду из вызова других языков, таких как C и C ++, тесная интеграция Python и простота доступа с заголовком Python.h делают его очевидным выбором для тех, кто хочет создать высокоуровневый интерфейс с C.

Экосистема

Как обсуждалось ранее, Python определенно является языком, который больше понравится среднему программисту. Вероятно, поэтому Python был языком, на котором были разработаны такие пакеты, как Scikit-Learn и Tensorflow, для использования в. Экосистема Pythonic для машинного обучения просто великолепна, и ее невозможно превзойти!

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

Использование для обоих

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

Это то, что я нахожу очень интересным. Почему R более широко используется биологами, врачами и другими специалистами, чем обычные разработчики, специалисты по данным и компьютерные ученые, погружающиеся в машинное обучение? Одно правдоподобное объяснение этому заключается в том, что R закрепился в этих отраслях в течение столь длительного периода времени, что заменить его стало довольно сложно. Как я уже говорил ранее, компьютерные ученые и люди из мира программирования, а не из мира общей науки, скорее всего, предпочтут использовать Python, а не изучать статистический язык 70-х годов. Конечно, в 70-х был создан не R, а S, но S широко считается предшественником R, так что имейте это в виду.

Заключение

Я думаю, что переход статистических вычислений от использования R и MATLAB к Python определенно оправдан. У использования Python есть множество преимуществ, которых вы просто не найдете больше нигде. Python обладает превосходной производительностью, более доступен для начинающих разработчиков, а также является самым популярным языком программирования в мире. Все эти факторы, безусловно, способствовали развитию Python и его теперь фантастической точке опоры в сфере аналитики, статистики и, прежде всего, машинного обучения.

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