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

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

Готовы ли вы узнать о наиболее часто используемых библиотеках Python в науке о данных? Давайте начнем.

I. Подготовка данных:

Это самый первый этап вашей работы. И на этом этапе вы будете загружать свои данные, преобразовывать их, очищать и суммировать, чтобы впоследствии они были готовы для вашей работы. Итак, какие пакеты следует использовать для подготовки данных?

1. Панды

Pandas — это пакет, который позволяет обрабатывать, манипулировать, суммировать и анализировать данные в python. Забавный факт, Pandas на самом деле был создан для дублирования функций Data Frame, которые R предоставляет из коробки.

  • Когда использовать. Вам придется использовать pandas для анализа и предварительной обработки ваших данных.
  • Ограничения: Pandas обрабатывает данные в памяти. Это означает, что все ваши данные должны поместиться в вашей оперативной памяти. С одной стороны, это позволяет ускорить обработку. С другой стороны, панды нельзя было использовать для обработки больших данных.
  • Решение. Поставляется в пакетах для больших данных: в основном Pyspark и Dask.

2. Писпарк

Pyspark — это API Python, написанный для использования Apache Spark непосредственно из скрипта Python. Apache Spark — один из наиболее часто используемых движков для обработки больших данных.

  • Когда использовать. PySpark понадобится вам для обработки «больших данных», то есть: данных, которые не помещаются в память вашего компьютера.
  • Ограничение: на вашем компьютере должен быть установлен Spark. И это может быть сложнее, чем вы думаете.
  • Решение: Используйте Dask, который лично я считаю одним из самых недооцененных пакетов.

II. Визуализация:

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

3. Матплотлиб:

Matplotlib — один из наиболее часто используемых пакетов визуализации в python. Лично я считаю, что этот пакет сложно рассматривать в стандартном стеке Data Science из-за его неинтуитивного синтаксиса и низкого качества визуализации. Но это стандарт статус-кво.

  • Когда использовать. Используйте Matplotlib для быстрых набросков или прототипов визуализаций.
  • Ограничения. Визуальное качество результатов не является оптимальным для представления нетехническим клиентам.
  • Решение: используйте Plotly

4. Сюжетно:

Для устранения ограничений Matplotlib был разработан Plotly для улучшения качества визуализации данных в Python. Plotly также предлагает обширные интерактивные визуализации.

  • Когда использовать. Используйте Plotly для наглядного представления данных, особенно для внешних клиентов.
  • Ограничения. У вас могут возникнуть проблемы с производительностью, если у вас большой набор данных.
  • Решение. Создайте начальные прототипы визуализации с помощью Matplotlib. И попробуйте обобщить и агрегировать свои кадры данных, прежде чем передавать их в Plotly.

III. Машинное обучение:

Потратив 80% своего времени на упомянутый выше пакет. Настало время для продвинутой фазы, а именно: машинного обучения.

5. Нампи:

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

Таким образом, NumPy был разработан с использованием C, высокопроизводительного языка программирования.

  • Что: Numpy — это пакет, который поддерживает большие массивы и матрицы и предоставляет большое количество математических функций, которые можно применить к ним.
  • Когда использовать. Вы будете использовать NumPy каждый раз, когда вам нужно напрямую использовать массивы и матрицы. Это обширная часть, если вы реализуете алгоритмы ML с нуля.
  • Ограничения. Некоторые сложные математические операции не реализованы в NumPy.
  • Решение: используйте Scipy.

6. Сципион:

Основываясь на передовой реализации NumPy, SciPy предлагает более продвинутые операции линейной алгебры и исчисления, такие как интегрирование, преобразования Фурье, минимизация функций и т. д.

  • Когда использовать. Используйте Scipy каждый раз, когда вам нужны операции линейной алгебры и исчисления. В основном это произойдет, если вы реализуете алгоритм с нуля.
  • Ограничения. Scipy не предоставляет обширную библиотеку стандартных алгоритмов машинного обучения.
  • Решение: Как вы уже догадались, это Sklearn.

7. Склерн:

Sklearn — один из самых красиво оформленных и часто используемых пакетов, в котором реализовано большинство стандартных алгоритмов машинного обучения, тщательно оптимизированных с использованием NumPy и Cython.

  • Когда использовать. Используйте Sklearn каждый раз, когда вам нужно использовать стандартный алгоритм машинного обучения.
  • Ограничения. Несмотря на то, что Sklearn содержит реализации для нейронных сетей, он не обеспечивает гибкости, необходимой специалистам по глубокому обучению.
  • Решение: Tensorflow спешит на помощь.

8. Тензорный поток:

Tensorflow — это библиотека, которая используется для создания моделей нейронных сетей и глубокого обучения. Он также частично реализован на C для повышения производительности. И он может работать на нескольких процессорах, графических процессорах и TPU.

  • Когда использовать.Tensorflow — это пакет, который нужно использовать, когда вам нужно внедрить модель глубокого обучения.
  • Ограничение: если вы будете обрабатывать изображения или текстовые данные, которые являются общими входными данными для модели глубокого обучения, вам потребуется использовать дополнительные пакеты для обработки ваших данных (например, Spacy, OpenCV ).

IV. Производство:

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

9. Колба:

Теперь у вас есть одна модель, которую вы хотите интегрировать в свой продукт. Один из наиболее распространенных способов представить вашу модель — обернуть ее в API, который другие приложения — независимо от их языка — могут напрямую вызывать.

  • Когда использовать. Flask — это очень простой пакет, который позволяет вам просто создать API для вашей модели.
  • Ограничения. Если вы хотите, чтобы ваш API был доступен для внешних или общедоступных пользователей, вам потребуется согласовать свои действия с системными администраторами и администраторами безопасности.

10. Дэш

Каким бы привлекательным ни был API для технарей, он настолько же бесполезен, насколько и бесполезен для заинтересованных сторон. Решение? Создайте веб-приложение, которое ваш клиент сможет использовать для доступа к результатам вашей модели.

  • Когда использовать. Используйте Dash для создания удобного веб-приложения. Внешний интерфейс и серверная часть веб-приложения будут написаны в сценарии Python.
  • Ограничения. Вначале у Dash может быть крутая кривая обучения.
  • Решение. Streamlit может быть проще для начала, но его фреймворк не такой зрелый, как Dash.