Connect with us

Программирование

Какие языки вам стоит изучить для Data Science?

Data Science (наука о данных) — это захватывающее поле для работы, сочетающее передовые статистические и количественные навыки с возможностями программирования в реальном мире. Существует много потенциальных языков программирования, в котором ученый может специализироваться.

Опубликовано

/

     
     

Перевод выполнен проектом Ladies Code — это открытое обучение для девушек, которые хотят развиваться в сфере IT.  25 ноября в Москве пройдёт первая международная конференция Ladies Code: Время технологий

Data Science (наука о данных) — это захватывающее поле для работы, сочетающее передовые статистические и количественные навыки с возможностями программирования в реальном мире. Существует много потенциальных языков программирования, в котором ученый может специализироваться.

Хотя нет правильного ответа, есть несколько вещей, которые следует принять во внимание. Ваш успех как научного сотрудника зависит от многих факторов, в том числе:

Специфичность

Когда речь заходит о передовой науке о данных, вы будете заново изобретать колесо каждый раз. Научитесь изучать различные пакеты и модули, предлагаемые на выбранном вами языке. Степень, в которой это возможно, зависит от того, какие специфические пакеты доступны вам в первую очередь.

Общность

У лучших data scientists есть хорошие навыки всестороннего программирования, а также способность корпеть над расчетами. Большая часть повседневной работы в области науки о данных вращается вокруг поиска и обработки необработанных данных или «очистки данных». Для этого никакие причудливые пакеты машинного обучения не помогут.

Продуктивность

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

Производительность

В некоторых случаях жизненно важно оптимизировать производительность вашего кода, особенно при работе с большими объемами критически важных данных. Скомпилированные языки обычно намного быстрее, чем интерпретируемые; аналогично статически типизированные языки значительно более отказоустойчивы, чем динамически типизированные. Очевидный компромисс действует против производительности.

В какой-то мере это можно рассматривать как пару осей (специфичность и общность, продуктивность и производительность). Каждый из нижеприведенных языков обладает своими особенностями и вам следует оценивать его с точки зрения этих факторов.

1. R

Что вам нужно знать

Выпущен в 1995 году как прямой потомок старшего языка программирования S. Написанный в C, Fortran и R проект в настоящее время поддерживается Фондом R для статистических вычислений.

Лицензия: бесплатно!

Плюсы:

  • Отличный ассортимент высококачественных, специфичных пакетов с открытым исходным кодом. R имеет пакет для почти любого количественного и статистического приложения, которое можно себе представить. Сюда входят нейронные сети, нелинейная регрессия, филогенетика, продвинутый график и многое другое.
  • Базовая установка поставляется с очень полными встроенными статистическими функциями и методами. R также хорошо обрабатывает матричную алгебру.
  • Визуализация данных является ключевой силой с использованием таких библиотек, как ggplot2.

Минусы:

  • Производительность. R – не быстрый язык.
  • Специфика области. R является фантастическим языком для целей статистики и данных. Но он не так хорош для более общих задач.
  • Причудливость. R имеет несколько необычных функций, которые могут ввести в заблуждение программистов, знакомых с другими языками. Например: массивы начинаются с 1, использование нескольких операторов присваивания, нетрадиционные структуры данных.

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

Картинки по запросу r programing language popularity

2. Python

Что вам нужно знать

Гуидо ван Россум представил Python еще в 1991 году. С тех пор он стал чрезвычайно популярным языком общего назначения и широко используется в сообществе ученых. В настоящее время основными версиями являются 3.6 и 2.7.

Лицензия: бесплатно!

Плюсы:

  • Python – очень популярный, основной язык программирования общего назначения. Он имеет обширный набор специально разработанных модулей и поддержку сообщества. Многие онлайн-сервисы предоставляют API для Python.
  • Python – это простой язык для изучения. Низкий барьер для входа делает его идеальным первым языком для тех, кто занимается программированием.
  • Пакеты, такие как pandasscikit-learn и Tensorflow, делают Python надежным вариантом для современных приложений машинного обучения.

Минусы:

  • Тип безопасности: Python – это динамически типизированный язык, что означает, что вы должны проявлять должную осторожность. Ошибки типа (такие как передача String в качестве аргумента методу, который ожидает Integer) следует ожидать время от времени.
  • Для конкретных целей статистического анализа и анализа данных обширный набор пакетов R дает ему небольшое преимущество над Python. Для языков общего назначения существуют более быстрые и безопасные альтернативы Python.

Python – очень хороший выбор языка для науки о данных не только для начального уровня. Большая часть процесса передачи данных вращается вокруг процесса ETL (извлечение-преобразование-загрузка).

3. SQL

Что вам нужно знать

SQL (Structured Query Language) определяет, управляет и делает запросы в реляционных базах данных. Язык появился в 1974 году и с тех пор претерпел множество реализаций, но основные принципы остаются неизменными.

Лицензия: Различается. Некоторые реализации являются бесплатными, другие являются патентованными.

Плюсы:

  • Очень эффективен при запросе, обновлении и обработке реляционных баз данных.
  • Декларативный синтаксис делает SQL очень читаемым языком.
  • SQL очень часто используется в различных приложениях, что делает его очень полезным языком для ознакомления. Модули, такие как SQLAlchemy, упрощают интеграцию SQL с другими языками.

Минусы:

  • Аналитические возможности SQL довольно ограничены – помимо агрегирования и суммирования, подсчета и усреднения данных ваши варианты ограничены.
  • Для программистов с императивным бэкграундом декларативный синтаксис SQL может потребовать дополнительного обучения.
  • Существует множество различных реализаций SQL, таких как PostgreSQLSQLiteMariaDB. Они все достаточно разные, что часто приводит к сложностям.

SQL более полезен в качестве языка обработки данных, чем в качестве передового аналитического инструмента. Тем не менее, много процессов в области данных зависит от ETL, а долговечность и эффективность SQL – это доказательство того, что это очень полезный язык для современного исследователя данных.

4. Java

Что вам нужно знать

Java – чрезвычайно популярный язык общего назначения, который работает на виртуальной машине Java (JVM). Это абстрактная вычислительная система, которая обеспечивает плавную переносимость между платформами. В настоящее время поддерживается корпорацией Oracle.

Лицензия: Версия 8 – бесплатно!

Плюсы:

  • Вездесущность. Многие современные системы и приложения построены на базе Java. Способность интегрировать методы наукоемкой данных непосредственно в существующую кодовую базу является мощной.
  • Java – это серьезно, когда дело доходит до обеспечения безопасности типов. Для критически важных приложений с большими данными это бесценно.
  • Java – это высокопроизводительный, скомпилированный язык общего назначения. Это делает его пригодным для написания эффективного производственного кода ETL и алгоритмов машинного обучения с использованием вычислительных средств.

Минусы:

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

Многие компании оценят возможность беспрепятственной интеграции кода производства данных в их существующую кодовую базу, и вы обнаружите, что производительность Java и безопасность типов являются реальными преимуществами. Тем не менее, вы не будете иметь набор специфически статистических пакетов, доступных для других языков. Тем не менее, Java определенно нужно рассмотреть – особенно если вы уже знаете R и/или Python.

5. Scala

Что вам нужно знать

Scala – это язык, который работает на JVM, он разработан Мартином Одерским и выпущен в 2004 году. Это язык с несколькими парадигмами, позволяющий использовать как объектно-ориентированные, так и функциональные подходы. Структура кластерных вычислений Apache Spark написана на Scala.

Лицензия: бесплатно!

Плюсы:

  • Scala + Spark = высокопроизводительные кластерные вычисления. Scala – идеальный выбор языка для тех, кто работает с наборами данных большого объема.
  • Мультипарадигматика: программисты Scala могут брать лучшее из обоих миров. Доступны для них как объектно-ориентированные, так и функциональные парадигмы программирования.
  • Scala компилируется в байт-код Java и работает на JVM. Это позволяет взаимодействовать с самим языком Java, делая Scala очень мощным языком общего назначения, а также он хорошо подходит для науки о данных.

Минусы:

  • Scala – это не простой язык, если вы только начинаете. Лучше всего будет скачать sbt и установить IDE, такую как Eclipse или IntelliJ со специальным плагином для Scala.
  • Синтаксис и система типов часто описываются как сложные. Это приводит к крутой кривой обучения для тех, кто приходит с динамических языков, таких как Python.

Когда дело доходит до использования кластерных вычислений для работы с большими данными, Scala + Spark – фантастические решения. Если у вас есть опыт работы с Java и другими статически типизированными языками, вы также оцените эти возможности Scala.

6. Julia

Что вам нужно знать

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

Лицензия: бесплатно!

Плюсы:

  • Julia – это JIT-язык, который позволяет ему обеспечить хорошую производительность. Он также предлагает простоту, динамическую типизацию и возможности сценариев интерпретируемого языка, такого как Python.
  • Julia была предназначена для численного анализа. Она также способна к программированию общего назначения.
  • Читаемость. Многие пользователи языка ссылаются на это как на ключевое преимущество.

Минусы:

  • Зрелость. В качестве нового языка некоторые пользователи Julia испытывают нестабильность при использовании пакетов. Но, как сообщается, сам основной язык достаточно стабилен для использования в производстве.
  • Ограниченные пакеты являются еще одним следствием молодости и небольшого сообщества разработчиков. В отличие от давно установленных R и Python, у Julia нет большого выбора пакетов (пока).

Главная проблема с Julia – это та, за что ее нельзя обвинять. Как недавно разработанный язык, он не настолько зрелый или готовый к производству, как его основные альтернативы Python и R. Но, если вы готовы быть терпеливыми, есть все основания уделять ему пристальное внимание, поскольку язык будет развиваться в ближайшие годы.

7. Matlab

Что вам нужно знать

MATLAB – это устоявшийся язык вычислений, используемый во всех академических кругах и промышленности. Он разработан и лицензирован MathWorks, компанией, созданной в 1984 году для коммерциализации программного обеспечения.

Лицензия: проприетарный – цены варьируются в зависимости от вашего варианта использования.

Плюсы:

  • Предназначен для численных вычислений. MATLAB хорошо подходит для количественных приложений со сложными математическими требованиями, такими как обработка сигналов, преобразования Фурье, матричная алгебра и обработка изображений.
  • Визуализация данных. MATLAB имеет ряд встроенных возможностей построения графиков.
  • MATLAB часто преподается как часть многих курсов бакалавриата по количественным предметам, таким как физика, инженерия и прикладная математика. Как следствие, он широко используется в этих областях.

Минусы:

  • Собственная лицензия. В зависимости от вашего варианта использования (академического, личного или корпоративного) вам может потребоваться раскошелиться на дорогостоящую лицензию. Существуют бесплатные альтернативы, такие как Octave.
  • MATLAB не является очевидным выбором для программирования общего назначения.

Широкое использование MATLAB в ряде количественных и количественных областей всей отрасли и научных кругов делает его серьезным выбором для науки о данных. Его применение необходимо, когда ваше приложение или повседневная роль требуют интенсивной, расширенной математической функциональности; действительно, MATLAB был специально разработан для этого.

Вывод

Ключевым моментом здесь является понимание ваших требований к использованию с точки зрения общности по сравнению со специфичностью, а также ваши личные предпочтения в стиле разработки, производительности и эффективности.

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

Однако, возможно, у вас уже есть опыт работы с Java. Или вы можете использовать Scala для больших данных. Или, может быть, вы очень заинтересованы в проекте Julia.

Может быть, вы изучили MATLAB в университете или хотите дать SciRuby шанс? Возможно, у вас есть совсем другое предложение?

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.

Наши партнеры:

LEGALBET

Мобильные приложения для ставок на спорт
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: