Найти в Дзене

4. Библиотеки машинного обучения

Sklearn - один из наиболее широко используемых пакетов Python для Data Science и Machine Learning. Scikit-learn – это модуль Python для машинного обучения, построенный поверх SciPy. Содержит большое количество моделей машинного обучения и многочисленные инструменты по их настройке и применению. Это опенсорсная библиотека машинного обучения с широким спектром алгоритмов кластеризации, регрессии и классификации. DBSCAN, градиентный бустинг, случайный лес, SVM и k-means — вот только несколько примеров. Scikit-learn использует следующие популярные библиотеки: ▪ NumPy: математические операции и операции над тензорами ▪ SciPy: научно-технические вычисления ▪ Matplotlib: визуализация данных ▪ IPython: интерактивная консоль для Python ▪ SymPy: символьная математика ▪ Pandas: обработка, манипуляции и анализ данных. Эта библиотека поддерживает алгоритмы обучения как с учителем, так и без учителя. Вот список основных преимуществ данной библиотеки, делающих ее одной из самых предпочтитель
Оглавление

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

Они описаны в этой статье, про обучение с учителем и без учителя - в этой.

-3

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

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. Визуализации отображают выбор модели, важность признаков и анализ производительности.

Другие библиотеки визуализации в МО здесь.

Обзор программ глубокого обучения - сравнительная таб.

* Немного о пайплайнах *

-6

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

В узком смысле пайплайн — это класс библиотеки Scikit-learn, последовательно применяющий к исходным данным настраиваемые преобразования.

Также пайплайн — это автоматизируемая последовательность обучения и оптимизации модели в PyTorch и других библиотеках.

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