В этой статье, первой из серии статей, рассматриваются некоторые библиотеки Python, которые я нашел полезными на протяжении всей своей карьеры в области аналитики, начиная от сбора данных, обучения моделей и развертывания моделей машинного обучения.
На протяжении всей своей карьеры у меня была возможность охватить весь спектр аналитики. От поиска данных, разработки функций, разработки конвейеров данных, обучения моделей машинного обучения и развертывания моделей машинного обучения. В результате такого широкого кругозора в моей карьере я познакомился с несколькими инструментами, технологиями и библиотеками. Это первая часть из серии статей, которые я опубликую, описывающих инструменты, которые я использую.
Питон
Это мой язык программирования при разработке конвейеров данных, обработки больших данных, машинного обучения и многих других приложений (например, веб-приложений). Python — это интерпретируемый объектно-ориентированный язык программирования. Он поддерживает несколько парадигм программирования, помимо объектно-ориентированного, включая процедурное и функциональное программирование.
Поскольку у меня не было опыта работы с Python, я обнаружил, что язык очень прост в освоении и быстро становится продуктивным. Язык уделяет большое внимание удобочитаемости, что упрощает просмотр и интерпретацию кода.
Поскольку язык программирования «более высокого уровня» имеет некоторые ограничения скорости, связанные с использованием языка. Кроме того, глобальная блокировка интерпретатора (GIL) Python ограничивает выполнение только 1 потоком за раз. Есть несколько способов обойти эти ограничения.
Я обнаружил, что общая цель Python очень полезна, поскольку мне проще внедрять решения, выходящие за рамки машинного обучения и аналитики. Кроме того, AWS и Azure предоставляют SDK для Python, что делает интеграцию приложений с соответствующими облачными сервисами довольно удобной.
Чтобы узнать больше о Python, посетите их веб-сайт (https://www.python.org/).
Я часто использую следующие библиотеки Python:
- Pandas (https://pandas.pydata.org/docs/index.html): библиотека, предоставляющая ряд структур данных и инструментов для анализа данных. Я использую эту библиотеку для чтения, визуализации, анализа и обработки данных. Недавно была выпущена версия 1.X, которая сильно отличается от версии 0.2X.
- Scikit Learn (https://scikit-learn.org/stable/): библиотека для проведения прогнозного анализа данных с возможностью повторного использования для интеграции с другими пакетами машинного обучения. Я использую эту библиотеку для предварительной обработки данных и использования их алгоритмов статистического обучения.
- Numpy (https://numpy.org/): фундаментальная библиотека, которая часто зависит от других пакетов машинного обучения.
- TensorFlow (https://www.tensorflow.org/): этот проект сильно изменился по сравнению с тем, когда я только начинал, и выходит за рамки простого создания моделей машинного обучения и глубокого обучения. Я использую эту библиотеку, когда мне нужен алгоритм глубокого обучения.
- PyTorch (https://pytorch.org/): платформа машинного обучения с открытым исходным кодом. Я использую эту библиотеку, когда мне нужен алгоритм глубокого обучения.
- XGBoost (https://xgboost.readthedocs.io/en/latest/index.html): библиотека, реализующая алгоритмы повышения градиента.
- CatBoost (https://catboost.ai/): библиотека, реализующая повышение градиента на деревьях решений.
- LightGBM (https://lightgbm.readthedocs.io/en/latest/index.html): библиотека, реализующая повышение градиента на древовидных алгоритмах.
- PySpark (https://spark.apache.org/docs/latest/api/python/index.html#): библиотека, позволяющая писать приложения Spark на Python. Я обнаружил, что эта библиотека очень полезна при работе с большими данными в кластере Spark.
- Plotly (https://plotly.com/): библиотека визуализации данных, позволяющая довольно быстро создавать интерактивные графики. Я обнаружил, что эта библиотека очень быстро визуализирует данные, однако она не так настраиваема, как Bokeh.
- Bokeh (https://docs.bokeh.org/en/latest/index.html): библиотека визуализации данных для создания интерактивных визуализаций. Я обнаружил, что эта библиотека требует намного больше кода, но вы получаете больше контроля над созданными визуализациями.
- Matplotlib (https://matplotlib.org/): библиотека визуализации данных для создания графиков. Довольно полезно и хорошо интегрируется в Jupyter Notebooks. Я использую это, когда провожу исследовательский анализ данных (EDA) в Jupyter.
- Pillow (https://pillow.readthedocs.io/en/stable/): библиотека обработки изображений при работе с аналитикой изображений. Я использую это для предварительной обработки данных изображения.
Разное
- Anaconda (https://www.anaconda.com/): это не просто отдельная библиотека, а скорее набор инструментов, который часто используется для науки о данных и аналитики. Обычно я часто использую этот инструментарий, и мне очень нравится простота использования для создания виртуальных сред для различных вариантов использования.
- mlflow (https://mlflow.org/): инструмент для управления жизненным циклом проекта машинного обучения. Я нашел это весьма полезным при управлении и отслеживании различных экспериментов. Кроме того, он используется и интегрируется в DataBricks, а также в Машинное обучение Azure.
Следите за моей следующей статьей о том, какие инструменты я нашел полезными в своей карьере в области аналитики. Мне также интересно узнать, какие библиотеки вы использовали для решения задач больших данных и машинного обучения. Не стесняйтесь поделиться ими в комментарии.