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

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

Питон

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

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

Поскольку язык программирования «более высокого уровня» имеет некоторые ограничения скорости, связанные с использованием языка. Кроме того, глобальная блокировка интерпретатора (GIL) Python ограничивает выполнение только 1 потоком за раз. Есть несколько способов обойти эти ограничения.

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

Чтобы узнать больше о Python, посетите их веб-сайт (https://www.python.org/).

Я часто использую следующие библиотеки Python:

  1. Pandas (https://pandas.pydata.org/docs/index.html): библиотека, предоставляющая ряд структур данных и инструментов для анализа данных. Я использую эту библиотеку для чтения, визуализации, анализа и обработки данных. Недавно была выпущена версия 1.X, которая сильно отличается от версии 0.2X.
  2. Scikit Learn (https://scikit-learn.org/stable/): библиотека для проведения прогнозного анализа данных с возможностью повторного использования для интеграции с другими пакетами машинного обучения. Я использую эту библиотеку для предварительной обработки данных и использования их алгоритмов статистического обучения.
  3. Numpy (https://numpy.org/): фундаментальная библиотека, которая часто зависит от других пакетов машинного обучения.
  4. TensorFlow (https://www.tensorflow.org/): этот проект сильно изменился по сравнению с тем, когда я только начинал, и выходит за рамки простого создания моделей машинного обучения и глубокого обучения. Я использую эту библиотеку, когда мне нужен алгоритм глубокого обучения.
  5. PyTorch (https://pytorch.org/): платформа машинного обучения с открытым исходным кодом. Я использую эту библиотеку, когда мне нужен алгоритм глубокого обучения.
  6. XGBoost (https://xgboost.readthedocs.io/en/latest/index.html): библиотека, реализующая алгоритмы повышения градиента.
  7. CatBoost (https://catboost.ai/): библиотека, реализующая повышение градиента на деревьях решений.
  8. LightGBM (https://lightgbm.readthedocs.io/en/latest/index.html): библиотека, реализующая повышение градиента на древовидных алгоритмах.
  9. PySpark (https://spark.apache.org/docs/latest/api/python/index.html#): библиотека, позволяющая писать приложения Spark на Python. Я обнаружил, что эта библиотека очень полезна при работе с большими данными в кластере Spark.
  10. Plotly (https://plotly.com/): библиотека визуализации данных, позволяющая довольно быстро создавать интерактивные графики. Я обнаружил, что эта библиотека очень быстро визуализирует данные, однако она не так настраиваема, как Bokeh.
  11. Bokeh (https://docs.bokeh.org/en/latest/index.html): библиотека визуализации данных для создания интерактивных визуализаций. Я обнаружил, что эта библиотека требует намного больше кода, но вы получаете больше контроля над созданными визуализациями.
  12. Matplotlib (https://matplotlib.org/): библиотека визуализации данных для создания графиков. Довольно полезно и хорошо интегрируется в Jupyter Notebooks. Я использую это, когда провожу исследовательский анализ данных (EDA) в Jupyter.
  13. Pillow (https://pillow.readthedocs.io/en/stable/): библиотека обработки изображений при работе с аналитикой изображений. Я использую это для предварительной обработки данных изображения.

Разное

  1. Anaconda (https://www.anaconda.com/): это не просто отдельная библиотека, а скорее набор инструментов, который часто используется для науки о данных и аналитики. Обычно я часто использую этот инструментарий, и мне очень нравится простота использования для создания виртуальных сред для различных вариантов использования.
  2. mlflow (https://mlflow.org/): инструмент для управления жизненным циклом проекта машинного обучения. Я нашел это весьма полезным при управлении и отслеживании различных экспериментов. Кроме того, он используется и интегрируется в DataBricks, а также в Машинное обучение Azure.

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