Openbravo-rus.ru

Образование по русски
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Python для машинного обучения

Библиотеки Python, необходимые для машинного обучения

Перевод статьи Шуби Астаны «Essential libraries for Machine Learning in Python».

Разработчики, которым в их работе нужно применять приемы статистики или анализа данных, часто выбирают Python в качестве своего языка. Также он используется учеными науки о данных – при интеграции их задач с веб-приложениями или производственными средами.

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

Одно из самых больших преимуществ Python – широкий спектр библиотек.

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

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

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

Scikit-learn для работы с классическими алгоритмами машинного обучения

Scikit-learn это одна из самых популярных библиотек машинного обучения. Она поддерживает много контролируемых и неконтролируемых алгоритмов обучения. Например, линейные и логистические регрессии, деревья принятия решений, кластеризацию, k-means и т. д.

Она создана на основе двух главных библиотек Python – NumPy и SciPy. В Scikit-learn добавлен набор алгоритмов для распространенных задач машинного обучения и добычи данных, включая кластеризацию, регрессию и классификацию. Даже такие задачи как преобразование данных и выбор функций могут быть реализованы с помощью всего нескольких строк.

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

Tensorflow для глубокого обучения

Если вы занимаетесь машинным обучением, то наверняка испытывали, реализовывали или хотя бы слышали о некоторых формах алгоритма глубокого обучения. Являются ли они необходимыми? Не всегда. Классные ли они, если сделаны правильно? Да!

Касательно Tensorflow любопытно то, что при написании программы на Python можно компилировать и запускать программу как на CPU, так и на GPU. Таким образом для запуска на GPU вам не приходится писать на C++ или на уровне CUDA.

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

Theano – также для глубокого обучения

Theano это еще одна хорошая библиотека Python для алгоритма числового расчета, похожая на NumPy. Она позволяет вам эффективно определять, оптимизировать и вычислять математические выражения, содержащие многомерные массивы.

Выделяет эту библиотеку использование преимуществ GPU компьютера. Это позволяет ей производить вычисления с большими объемами данных в сто раз быстрее, чем при запуске только на CPU. Скорость Theano особенно ценна для глубокого обучения и других задач, связанных со сложными вычислениями.

Последний релиз библиотеки Theano вышел в прошлом, 2017 году. Это версия 1.0.0 со множеством новых функций, изменениями интерфейса и прочими улучшениями.

Pandas для извлечения и подготовки данных

Pandas это очень популярная библиотека, предоставляющая высокоуровневые структуры данных, простые в использовании и интуитивно понятные.

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

Pandas может с легкостью извлекать данные из различных источников, таких как базы данных SQL, файлы CSV, Excel, JSON, и манипулировать этими данными для осуществления операций с ними.

Matplotlib для визуализации данных

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

Как же извлекать пользу из всех имеющихся у вас данных? Как вдохновлять бизнес-аналитиков и рассказывать им истории, полные «озарений»?

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

С другой стороны, она гибкая. Оперируя достаточным количеством команд, вы сможете создать практически любой график. Вы можете строить разнообразные диаграммы, от гистограмм и диаграмм рассеяния до графиков с не-декартовыми координатами.

Эта библиотека поддерживает GUI-бэкенд во всех операционных системах, а также может экспортировать графики в распространенных форматах (PDF, SVG, JPG, PNG, BMP, GIF).

Seaborn – еще одна библиотека для визуализации данных

Seaborn это популярная библиотека визуализации, которая строит графики на основе Matplotlib. Это библиотека более высокого уровня, а значит, с ее помощью проще генерировать определенные виды графиков, в том числе тепловые карты, временные ряды и скрипичные графики.

Заключение

Это коллекция самых важных библиотек Python для машинного обучения. Если вы планируете работать с Python и/или в сфере науки о данных, стоит обратить на них внимание и познакомиться с ними поближе.

Если считаете, что в этом списке должны быть и другие библиотеки – поделитесь в комментариях!

Почему Python используется для машинного обучения?

Скорее всего, вы знаете, что Python — это самый популярный высокоуровневый язык программирования с динамической семантикой. Он довольно прост для работы и чтения: его использование снижает стоимость разработки и обслуживания программ.

Читать еще:  Обучение python книга

Python считается самым простым языком программирования — именно поэтому он самый распространенный. Посмотрите на график ниже. Он предсказывает, какие языки будут использоваться чаще всего к 2020 году:

Помимо простоты, у Python есть еще один плюс — он довольно легко взаимодействует с другими языками, особенно с C и C++. Теперь давайте разберемся, почему Python активно используется в машинном обучении.

Почему Python так часто используется в машинном обучении?

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

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

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

Согласно исследованию Hackerrank Stat 2018, «среди работодателей самым востребованным языком программирования является JavaScript, однако среди разработчиков наибольшую любовь завоевал Python, о чем говорит наше исследование Love-Hate index».

Большой выбор библиотек и фреймворков

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

Давайте обсудим, какие именно библиотеки и фреймворки Python используются в машинном обучении. В научных расчетах используется Numpy, в продвинутых вычислениях — SciPy, в извлечении и анализе данных — SciKit-Learn. Эти библиотеки работают в таких фреймворках, как TensorFlow, CNTK и Apache Spark.

Существует фреймворк для Python, разработанный специально для машинного обучения — это PyTorch.

Понятность

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

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

Простой синтаксис языка Python помогает разработчику тестировать сложные алгоритмы с минимальной тратой времени на их реализацию.

Обширная поддержка

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

Гибкость

Следующее преимущество Python в машинном обучении состоит в его гибкости: например, у разработчика есть выбор между объектно-ориентированным подходом и скриптами. Python помогает объединять различные типы данных. Более того, Python особенно удобен для тех разработчиков, которые большую часть кода пишут с помощью IDE.

Популярность

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

Заключение

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

13 лучших библиотек глубокого машинного обучения для Python

Когда дело касается задач машинного обучения, искусственного интеллекта, Deep Learning и данных, Python безусловно продолжает лидировать. Согласно builtwith.com , 45% технологических компаний предпочитают использовать Python для реализации ИИ и машинного обучения.

Ниже приведен список 13 самых популярных библиотек Python, используемых при решении многочисленных задач глубокого машинного обучения Конечно, список этот субъективен. Многие библиотеки могут быть легко отнесены к нескольких категориям искусственного интеллекта. Например, TensorFlow включен в наш список, а Keras, наоборот, считается библиотекой Machine Learning. Связано это с тем, что Keras скорее библиотека для «конечного пользователя», такая как SKLearn. Что отличает её от TensorFlow, которая больше привлекает исследователей и «инженеров-машинистов».

Рисунок 1: 13 лучших библиотек Deep Learning на Python, Commits и Contributors . Размер метки пропорционален количеству звезд.

Теперь давайте перейдем непосредственно к списку (цифры с GitHub получены 23 октября 2018 года):

1. TensorFlow

( Contributors — 1 700, Commits — 42 256, ✬✬✬ — 112 591)

TensorFlow — библиотека с открытым исходным кодом для численного расчета с использованием графов потока данных. Узлы графа представляют собой математические операции, а ребра — многомерные массивы данных (тензоры), которые текут между ними. Такая гибкая архитектура позволяет развернуть вычисления на одном или нескольких процессорах или графических процессорах на рабочем столе, сервере или мобильном устройстве без переписывания кода.

2. PyTorch

( Contributors — 806, Commits — 14 022, ✬✬✬ — 20 243)

PyTorch — это пакет Python, который обеспечивает две функции высокого уровня:

  1. Расчет тензора (например, NumPy) с сильным ускорением GPU
  2. Глубокие нейронные сети, построенные на ленточной автоградной системе

Вы можете использовать свои любимые пакеты Python, такие как NumPy, SciPy и Cython для расширения PyTorch при необходимости.

3. Apache MXNet

( Contributors — 628, Commits — 8 723, ✬✬✬ — 15 447)

Apache MXNet (инкубация) — база Deep Learning, ориеннтрованная на эффективность и гибкость. Это позволяет сочетать символическое и императивное программирование для увеличения эффективности и производительности. По своей сути MXNet содержит динамический планировщик зависимостей, который «на лету» автоматически распараллеливает как символические, так и императивные операции.

Читать еще:  Текстовые редакторы в обучении

4. Theano

( Contributors — 329, Commits — 28 033, ✬✬✬ — 8 536)

Theano — библиотека Python, которая позволяет эффективно определять, оптимизировать и оценивать математические выражения, содержащие многомерные массивы. Она может использовать графические процессоры и выполнять эффективную символическую дифференциацию.

5. Caffe

( Contributors — 270, Commits — 4 152, ✬✬✬ — 25 927)

Caffe — база Deep Learning, разработанная с учетом выраженности, скорости и модульности. Разработана в Berkeley AI Research (BAIR) / The Berkeley Vision and Learning Center (BVLC) и их сообществами.

6. fast.ai

( Contributors — 226, Commits — 2 237, ✬✬✬ — 8 872)

Библиотека fastai упрощает обучение быстрым и точным нейронным сетям, используя современные передовые методы. Для начала ознакомьтесь с сайтом fast.ai . Библиотека основана на исследованиях в области передовых методов Deep Learning, проводимых на fast.ai, и включает в себя «из коробки» поддержку моделей видения, текста, таблиц и коллабов (совместная фильтрация).

7. CNTK>/a>

( Contributors — 189, Commits — 15 979, ✬✬✬ — 15 281)

Инструментарий Microsoft Cognitive Toolkit ( https://cntk.ai ) — унифицированный инструментарий Deep Learning, который описывает нейронные сети как серию вычислительных шагов через ориентированный граф. В этом ориентированном графе листовые узлы представляют входные значения или сетевые параметры, тогда как другие узлы представляют собой матричные операции на своих входах. CNTK позволяет пользователям легко реализовывать и комбинировать популярные типы моделей, такие как DNN прямой линии связи, сверточные сети (CNN) и свёрточные сети (RNNs / LSTM).

8. TFLearn

( Contributors — 118, Commits — 599, ✬✬✬ — 8 632)

TFlearn — модульная и прозрачная библиотека Deep Learning, построенная на основе Tensorflow. Она был разработана для предоставления API для TensorFlow более высокого уровня, облегчающий и ускоряющий эксперименты, оставаясь полностью прозрачным и совместимым.

9. Lasagne

( Contributors — 64, Commits — 1 157, ✬✬✬ — 3 534)

Lasagne — легкая библиотека для создания и обучения нейронных сетей в Теано. Она поддерживает сети передачи данных, такие как сверточные нейронные сети (CNN), свёрточные сети, включая Long Short-Term Memory (LSTM) и любую их комбинацию.

10. nolearn

( Contributors — 14, Commits — 389, ✬✬✬ — 909)

Nolearn содержит множество оберток и абстракций вокруг существующих нейронных сетевых библиотек, в первую очередь Lasagne, а также несколько модулей для машинного обучения. Весь код написан для совместимости с scikit-learn.

11. Elephas

( Contributors — 13, Commits — 249, ✬✬✬ — 1 046)

Elephas — это расширение Keras, которое позволяет вам запускать распределенные модели Deep Learning в масштабе с помощью Spark. В настоящее время Elephas поддерживает ряд приложений, в том числе:

  1. Параллельная подготовка моделей Deep Learning
  2. Распределенная оптимизация гиперпараметров
  3. Распределенное обучение ансамблевым моделям

12. spark-deep-learning

( Contributors — 12, Commits — 83, ✬✬✬ — 1 131)

Deep Learning Pipelines предоставляет высокоуровневые API для масштабируемого Deep Learning на Python с Apache Spark. Библиотека исходит от Databricks и использует Spark для двух самых сильных аспектов:

  1. В духе Spark и Spark MLlib он предоставляет простые в использовании API, которые позволяют осуществлять глубокое обучение в очень немногих строках кода.
  2. Он использует мощный распределенный движок Spark для глубокого изучения массивных наборов данных.

13. Distributed Keras

( Contributors — 5, Commits — 1 125, ✬✬✬ — 523)

Распределенная Keras — это распределенная система Deep Learning, построенная поверх Apache Spark и Keras, с упором на« современные »распределенные алгоритмы оптимизации. Мы разработали структуру таким образом, чтобы новый распределенный оптимизатор мог быть реализован с легкостью, что позволило человеку сосредоточиться на исследованиях.

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


13 лучших библиотек глубокого машинного обучения для Python , опубликовано К ВВ, лицензия — Creative Commons Attribution-NonCommercial 4.0 International.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Обзор библиотек для машинного обучения на Python

Описание [ править ]

Scikit-learn [1] — библиотека машинного обучения на языке программирования Python с открытым исходным кодом. Содержит реализации практически всех возможных преобразований, и нередко ее одной хватает для полной реализации модели. В данной библиотеки реализованы методы разбиения датасета на тестовый и обучающий, вычисление основных метрик над наборами данных, проведение Кросс-валидация [на 28.01.19 не создан] . В библиотеке также есть основные алгоритмы машинного обучения: линейной регрессии [на 28.01.19 не создан] и её модификаций Лассо, гребневой регрессии, опорных векторов [на 28.01.19 не создан] , решающих деревьев и лесов и др. Есть и реализации основных методов кластеризации. Кроме того, библиотека содержит постоянно используемые исследователями методы работы с признаками: например, понижение размерности методом главных компонент [на 28.01.19 не создан] . Частью пакета является библиотека imblearn [2] , позволяющая работать с разбалансированными выборками и генерировать новые значения.

Примеры кода [ править ]

Линейная регрессия [ править ]

Разбиение датасета на тренировочный и тестовый:

Построение и обучение модели:

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

Логистическая регрессия [ править ]

Вывод первых трех тренировочных данных для визуализации:

Разбиение датасета на тренировочный и тестовый:

Построение и обучение модели:

Перцептрон [ править ]

Разбиение датасета на тренировочный и тестовый:

Построение и обучение модели:

Метрический классификатор и метод ближайших соседей [ править ]

Дерево решений и случайный лес [ править ]

Обработка естественного языка [ править ]

Вывод первых трех строк первого тренивочного файла и его класса:

Читать еще:  Обучение мобильной разработке

Построение и обучение двух моделей. Первая на основе Байесовской классификации [на 28.01.19 не создан] , а вторая использует метод опорных векторов:

Кросс-валилация и подбор параметров [ править ]

Возьмем предыдущий пример с обработкой естественного языка и попробуем увеличить точность алгоритма за счет кросс-валидации и подбора параметров:

Метод опорных векторов (SVM) [ править ]

Разбиение датасета на тестовый и тренировочный:

Построение и обучение модели:

EM-алгоритм [ править ]

Уменьшение размерности [ править ]

Описание [ править ]

Tensorflow [3] — библиотека, разработанная корпорацией Google для работы с тензорами, используется для построения нейронных сетей. Поддержка вычислений на видеокартах имеет поддержку языка программирования C++. На основе данной библиотеки строятся более высокоуровневые библиотеки для работы с нейронными сетями на уровне целых слоев. Так, некоторое время назад популярная библиотека Keras стала использовать Tensorflow как основной бэкенд для вычислений вместо аналогичной библиотеки Theano. Для работы на видеокартах NVIDIA используется библиотека cuDNN. Если вы работаете с картинками (со сверточными нейросетями), скорее всего, придется использовать данную библиотеку.

Примеры кода [ править ]

Сверточная нейронная сеть [ править ]

Реализация сверточной нейронной сети для классификации цифр из датасета MNIST:

Описание [ править ]

Keras [4] — библиотека для построения нейронных сетей, поддерживающая основные виды слоев и структурные элементы. Поддерживает как рекуррентные, так и сверточные нейросети, имеет в своем составе реализацию известных архитектур нейросетей (например, VGG16). Некоторое время назад слои из данной библиотеки стали доступны внутри библиотеки Tensorflow. Существуют готовые функции для работы с изображениями и текстом. Интегрирована в Apache Spark с помощью дистрибутива dist-keras. Данная библиотека позволяет на более высоком уровне работать с нейронными сетями. В качестве библиотеки для бэкенда может использоваться как Tensorflow, так и Theano.

Примеры кода [ править ]

Сверточная нейронная сеть [ править ]

Реализация сверточной нейронной сети для классификации текста:

Почему Python используется для машинного обучения?

Скорее всего, вы знаете, что Python — это самый популярный высокоуровневый язык программирования с динамической семантикой. Он довольно прост для работы и чтения: его использование снижает стоимость разработки и обслуживания программ.

Python считается самым простым языком программирования — именно поэтому он самый распространенный. Посмотрите на график ниже. Он предсказывает, какие языки будут использоваться чаще всего к 2020 году:

Помимо простоты, у Python есть еще один плюс — он довольно легко взаимодействует с другими языками, особенно с C и C++. Теперь давайте разберемся, почему Python активно используется в машинном обучении.

Почему Python так часто используется в машинном обучении?

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

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

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

Согласно исследованию Hackerrank Stat 2018 , «среди работодателей самым востребованным языком программирования является JavaScript, однако среди разработчиков наибольшую любовь завоевал Python, о чем говорит наше исследование Love-Hate index».

Большой выбор библиотек и фреймворков

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

Давайте обсудим, какие именно библиотеки и фреймворки Python используются в машинном обучении. В научных расчетах используется Numpy, в продвинутых вычислениях — SciPy, в извлечении и анализе данных — SciKit-Learn. Эти библиотеки работают в таких фреймворках, как TensorFlow, CNTK и Apache Spark.

Существует фреймворк для Python, разработанный специально для машинного обучения — это PyTorch.

Понятность

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

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

Простой синтаксис языка Python помогает разработчику тестировать сложные алгоритмы с минимальной тратой времени на их реализацию.

Обширная поддержка

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

Гибкость

Следующее преимущество Python в машинном обучении состоит в его гибкости: например, у разработчика есть выбор между объектно-ориентированным подходом и скриптами. Python помогает объединять различные типы данных. Более того, Python особенно удобен для тех разработчиков, которые большую часть кода пишут с помощью IDE.

Популярность

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

Заключение

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

Ссылка на основную публикацию
Adblock
detector