Следующая большая вещь, или просто сильно разрекламированная?

Как энтузиаст данных, вы, вероятно, слышали о Julia, «языке программирования будущего для науки о данных». Есть утверждения, что Julia заменит Python и R в области науки о данных, поскольку он предлагает значительные преимущества. с точки зрения производительности, эффективности и простоты использования.

В этой статье мы рассмотрим, что такое Julia, его применение и стоит ли изучать язык для науки о данных.

Что такое Джулия?

Джулия была создана, чтобы предложить простоту Python, статистические возможности R и скорость C и C++.

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

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

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

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

Julia решает эту проблему, предлагая простоту использования и эффективность.

Он был разработан, чтобы предоставить пользователям низкую задержку, как C++, что означает, что он от 1,5 до 5 раз быстрее, чем библиотека Python Pandas, даже без включенной многопоточности.

Кроме того, как и Python, Julia — это язык программирования общего назначения, который также предлагает статистические возможности. Его синтаксис легко подобрать.

В связи с этим Julia все чаще используется специалистами по данным, экономистами, статистиками, учеными и математиками.

Приложения Юлии

Как было сказано выше, Julia используется многими профессионалами благодаря своей простоте и быстроте работы. Вот несколько примеров использования языка в реальном мире:

1. Наука о данных

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

Многие специалисты по данным предпочитают Julia, а не Python, поскольку он быстрее, проще в отладке, прост и имеет лучшее управление пакетами.

2. Веб-разработка

Фреймворк Джулии Genie.jl похож на библиотеку Django в Python и может использоваться для полнофункциональной веб-разработки.

Если вы хотите создать комплексное динамическое веб-приложение, но считаете Python слишком медленным и не хотите тратить время на изучение более сложного языка, Julia — отличный вариант.

Если вы хотите создать приложение панели мониторинга для демонстрации визуализаций, можно использовать Dash.jl, который эквивалентен библиотеке Plotly Dash в Python.

3. Анализ данных

Все специалисты по данным обнаружат необходимость анализировать и извлекать из данных содержательную информацию. Julia предоставляет пользователям набор библиотек, разработанных специально для анализа и визуализации данных.

У Джулии есть пакет под названием DataFrames.jl, который позволяет загружать табличные данные и манипулировать ими. Вы можете думать об этом как об эквиваленте Pandas в Python. С многопоточностью Julia может быть в 20 раз быстрее, чем Pandas.

Джулия также позволяет пользователям визуализировать данные с помощью Plots.jl, похожего на Matplotlib в Python.

Например, вы можете создать простую точечную диаграмму с помощью Plots.jl в одной строке кода:

Вы даже можете создавать динамические анимированные сюжеты, подобные этому, в Julia:

Некоторые другие диаграммы, которые вы можете построить в Julia, включают тепловые карты, гистограммы, пузырьковые диаграммы, диаграммы скрипки и точечные диаграммы.

4. Научные вычисления

Джулия широко используется в таких областях, как химия, физика, астрономия и биоинформатика.

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

BioSequences.jl, Molly.jl и QuantumLab.jl — вот некоторые примеры научных пакетов, которые можно использовать для решения предметно-ориентированных задач в Julia.

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

Мой опыт с Юлией

Первым языком программирования, который я изучил, был Python, и это почти всегда мой выбор при работе над задачами по науке о данных.

Впервые я столкнулся с Юлией, когда работал над задачей линейного программирования. Мне пришлось создать оптимизатор для минимизации функции на основе набора ограничений.

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

Я нашел несколько библиотек на Python для выполнения этой работы, но не был доволен тем, как был представлен результат. Пакеты, которые я использовал, также оказались неэффективными, поэтому я обратился к Юлии за альтернативным решением.

Библиотека Optim.jl оказалась намного быстрее всего, что я пробовал на Python (Scipy, Gekko), и сэкономила как минимум 4–5 часов времени команды.

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

Итак… Стоит ли изучать Джулию для науки о данных?

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

Популярность Julia возросла за последние три года и в настоящее время используется крупными организациями, такими как Apple, Amazon, Google, IBM и Microsoft.

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

По их словам, учить Джулию сейчас — хорошая идея, чтобы вы могли оставаться на вершине поля, когда язык станет «следующей большой вещью» в ближайшие 10 лет.

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

В конце концов, только время покажет, что ждет Джулию в будущем.

Лично я считаю, что всегда полезно узнать что-то новое, если у вас есть свободное время. Изучение Джулии может помочь вам ускорить рабочие процессы машинного обучения и продемонстрировать портфолио проектов, которые выделят вас из толпы.

Как выучить Джулию для науки о данных?

Вот 3 шага, которые вы можете предпринять, чтобы изучить Джулию для науки о данных:

Шаг 1. Настройте среду Julia

  1. Для начала скачайте последнюю версию Юлии и запустите исполняемый файл.
  2. После установки Julia нажмите «Пуск» и найдите Julia. Нажмите здесь.
  3. Это должно открыть командную строку Julia. Введите следующее и нажмите Enter:
using Pkg
Pkg.add(“IJulia”)

4. После завершения установки скачайте последнюю версию Anaconda и следуйте инструкциям в исполняемом файле.

5. Перейдите в Пуск -> Блокнот Jupyter. Это должно открыть вкладку, которая выглядит как на изображении ниже:

6. Нажмите «Создать» и выберите «Юлия» из раскрывающегося списка. Это откроет блокнот, в котором вы можете написать код Джулии:

Если вы уже используете Jupyter для запуска программ Python, вам должен быть знаком этот интерфейс.

Шаг 2: Изучите основы

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

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

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

Наконец, используйте эти пакеты для анализа данных и выполнения прогнозного моделирования.

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

Шаг 3: Создайте персональные проекты

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

Вот несколько идей проектов с исходным кодом, которые можно реализовать с помощью Julia: