1. Scikit-learn
Sklearn - один из наиболее широко используемых пакетов Python для Data Science и Machine Learning.
Scikit-learn – это модуль Python для машинного обучения, построенный поверх SciPy. Содержит большое количество моделей машинного обучения и многочисленные инструменты по их настройке и применению.
Это опенсорсная библиотека машинного обучения с широким спектром алгоритмов кластеризации, регрессии и классификации. DBSCAN, градиентный бустинг, случайный лес, SVM и k-means — вот только несколько примеров.
Scikit-learn использует следующие популярные библиотеки:
▪ NumPy: математические операции и операции над тензорами
▪ SciPy: научно-технические вычисления
▪ Matplotlib: визуализация данных
▪ IPython: интерактивная консоль для Python
▪ SymPy: символьная математика
▪ Pandas: обработка, манипуляции и анализ данных.
Эта библиотека поддерживает алгоритмы обучения как с учителем, так и без учителя. Вот список основных преимуществ данной библиотеки, делающих ее одной из самых предпочтительных библиотек Python для ML:
- снижение размерности
- алгоритмы, построенные на решающих деревьях (в том числе стрижка и индукция)
- построение решающих поверхностей
- анализ и выбор признаков
- обнаружение и удаление выбросов
- продвинутое вероятностное моделирование
- классификация и кластеризация без учителя
Основные методы, реализуемые Scikit-learn:
▪ Линейные
▪ Метрические
▪ Деревья решений
▪ Ансамблевые методы
▪ Нейронные сети
▪ SVM
▪ Наивный Байес
▪ PCA
▪ t-SNE
▪ K-средних
▪ Кросс-валидация
▪ Grid Search
Они описаны в этой статье, про обучение с учителем и без учителя - в этой.
2. TensorFlow
TensorFlow — библиотека сквозного машинного обучения Python для выполнения высококачественных численных вычислений и тренировки нейронной сети с целью автоматического нахождения и классификации образов, достигая качества человеческого восприятия. Разработана гуглом для внутреннего использования в Google, в 2015 году система была переведена в свободный доступ.
Основной API для работы с библиотекой реализован для питона, но есть реализации для R, C Sharp, C++, Haskell, Java, Go и Swift.
С помощью TensorFlow можно построить глубокие нейронные сети для распознавания образов и рукописного текста и рекуррентные нейронные сети для NLP (обработки естественных языков). Также есть модули для векторизации слов (embedding) и решения дифференциальных уравнений в частных производных (PDE). Этот фреймворк имеет отличную архитектурную поддержку, позволяющую с легкостью производить вычисления на самых разных платформах, в том числе на десктопах, серверах и мобильных устройствах.
Вычисления TensorFlow выражаются в виде потоков данных через граф состояний. Название TensorFlow происходит от операций с многомерными массивами данных, которые также называются тензорами (см.ниже).
Поскольку доля рынка TensorFlow среди исследовательских работ сокращалась в пользу PyTorch, команда TensorFlow объявила о выпуске новой основной версии библиотеки в сентябре 2019 года. Изменил схему автоматического дифференцирования со статического вычислительного графа на схему «Определить-запуском», первоначально ставшую популярной благодаря Chainer, а затем PyTorch.
3. Keras
Keras — одна из основных библиотек Python с открытым исходным кодом, написанная для построения нейронных сетей и проектов машинного обучения. Keras может работать совместно с Deeplearning4j, MXNet, Microsoft Cognitive Toolkit (CNTK), Theano или TensorFlow.
В этой библиотеке реализованы практически все автономные модули нейронной сети, включая оптимизаторы, нейронные слои, функции активации слоев, схемы инициализации, функции затрат и модели регуляризации. Это позволяет строить новые модули нейросети, просто добавляя функции или классы. И поскольку модель уже определена в коде, разработчику не приходится создавать для нее отдельные конфигурационные файлы.
Keras особенно удобна для начинающих разработчиков, которые хотят проектировать и разрабатывать собственные нейронные сети. Также Keras можно использовать при работе со сверточными нейронными сетями, сетями глубинного обучения. В нем реализованы алгоритмы нормализации, оптимизации и активации слоев.
Keras не является ML-библиотекой полного цикла (то есть, исчерпывающей все возможные варианты построения нейронных сетей). Вместо этого она функционирует как очень дружелюбный, расширяемый интерфейс, увеличивающий модульность и выразительность (в том числе других библиотек).
Её код размещен на GitHub, а форумы поддержки включают страницу вопросов GitHub, канал Gitter и канал Slack.
4. PyTorch
PyTorch — это полностью готовая к работе библиотека машинного обучения Python с открытым кодом с отличными примерами, приложениями и вариантами использования, поддерживаемая сильным сообществом - вокруг фреймворка выстроена экосистема. Разрабатывается преимущественно группой искусственного интеллекта фейсбука.
PyTorch отлично адаптирована к графическому процессору (GPU), что позволяет использовать его, например в приложениях NLP (обработка естественных языков). Вообще, поддержка вычислений на GPU и CPU обеспечивает оптимизацию и масштабирование распределенных задач обучения как в области исследований, так и в области создания ПО.
Глубокие нейронные сети и тензорные вычисления с ускорением на GPU — две основные фишки PyTorch. Библиотека также включает в себя компилятор машинного обучения под названием Glow, который серьезно повышает производительность фреймворков глубокого обучения. Имеет модуль вероятностного программирования.
Две основные высокоуровневые модели:
- Тензорные вычисления (по аналогии с нампай) с развитой поддержкой ускорения на GPU
- Глубокие нейронные сети на базе системы autodiff
Тензоры не представляют собой чего-либо особенного, просто являясь многомерными массивами. Тензоры PyTorch (Tensors) похожи на массивы нампай, но дополнительно могут обрабатываться на видеоускорителях. PyTorch поддерживает различные типы тензоров
В математике тензор - объект линейной алгебры, заданный в векторном пространстве конечной размерности.
Вобще, идея напоминает Torch - библиотку МО на языке Си.
5. Yellowbrick
YellowBrick - визуальный анализ и диагностические инструменты для облегчения выбора модели машинного обучения. Это расширение scikit-learn, которое позволяет использовать полезные и красивые визуализации для моделей машинного обучения. Объекты визуализатора и интерфейс ядра — это функции оценки scikit-learn. Визуализации отображают выбор модели, важность признаков и анализ производительности.
Другие библиотеки визуализации в МО здесь.
Обзор программ глубокого обучения - сравнительная таб.
* Немного о пайплайнах *
Пайплайн в машинном обучении — это последовательные стадии работы с данными, включающие извлечение данных, скраббинг (очистку), разведочный анализ данных (EDA), моделирование, интерпретацию и пересмотр.
В узком смысле пайплайн — это класс библиотеки Scikit-learn, последовательно применяющий к исходным данным настраиваемые преобразования.
Также пайплайн — это автоматизируемая последовательность обучения и оптимизации модели в PyTorch и других библиотеках.
Например, в библиотеке Scikit-learn пайплайн позволяет автоматизировать предварительные преобразования данных перед обучением модели, собирая все инструменты в один конвейер без повторяющегося кода.