библиотеки машинного обучения это
Библиотеки Python, необходимые для машинного обучения
Хочешь знать больше о Python?
Подпишись на наш канал о Python в Telegram!
Перевод статьи Шуби Астаны «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
Содержание
Scikit-learn [ править ]
Описание [ править ]
Примеры кода [ править ]
Линейная регрессия [ править ]
Разбиение датасета на тренировочный и тестовый:
Построение и обучение модели:
Построение графика прямой, получившейся в результате работы линейной регрессии:
Логистическая регрессия [ править ]
Вывод первых трех тренировочных данных для визуализации:
Разбиение датасета на тренировочный и тестовый:
Построение и обучение модели:
Перцептрон [ править ]
Разбиение датасета на тренировочный и тестовый:
Построение и обучение модели:
Метрический классификатор и метод ближайших соседей [ править ]
Дерево решений и случайный лес [ править ]
Обработка естественного языка [ править ]
Вывод первых трех строк первого тренивочного файла и его класса:
Кросс-валилация и подбор параметров [ править ]
Возьмем предыдущий пример с обработкой естественного языка и попробуем увеличить точность алгоритма за счет кросс-валидации и подбора параметров:
Метод опорных векторов (SVM) [ править ]
Разбиение датасета на тестовый и тренировочный:
Построение и обучение модели:
EM-алгоритм [ править ]
Уменьшение размерности [ править ]
Tensorflow [ править ]
Описание [ править ]
Tensorflow [3] — библиотека, разработанная корпорацией Google для работы с тензорами, используется для построения нейронных сетей. Поддержка вычислений на видеокартах имеет поддержку языка программирования C++. На основе данной библиотеки строятся более высокоуровневые библиотеки для работы с нейронными сетями на уровне целых слоев. Так, некоторое время назад популярная библиотека Keras стала использовать Tensorflow как основной бэкенд для вычислений вместо аналогичной библиотеки Theano. Для работы на видеокартах NVIDIA используется библиотека cuDNN. Если вы работаете с картинками (со сверточными нейросетями), скорее всего, придется использовать данную библиотеку.
Примеры кода [ править ]
Сверточная нейронная сеть [ править ]
Реализация сверточной нейронной сети для классификации цифр из датасета MNIST:
Keras [ править ]
Описание [ править ]
Keras [4] — библиотека для построения нейронных сетей, поддерживающая основные виды слоев и структурные элементы. Поддерживает как рекуррентные, так и сверточные нейросети, имеет в своем составе реализацию известных архитектур нейросетей (например, VGG16). Некоторое время назад слои из данной библиотеки стали доступны внутри библиотеки Tensorflow. Существуют готовые функции для работы с изображениями и текстом. Интегрирована в Apache Spark с помощью дистрибутива dist-keras. Данная библиотека позволяет на более высоком уровне работать с нейронными сетями. В качестве библиотеки для бэкенда может использоваться как Tensorflow, так и Theano.
Примеры кода [ править ]
Сверточная нейронная сеть [ править ]
Реализация сверточной нейронной сети для классификации текста:
Топ-10 библиотек Python для машинного обучения
Data Science активно использует предиктивные возможности алгоритмов машинного обучения (ML). Python же предоставляет удобную среду для экспериментов с этими алгоритмами благодаря своей читабельности и эффективности. А обилие библиотек делают его еще более привлекательным решением.
Фреймворк — это интерфейс или инструмент, позволяющий разработчикам просто создавать модели машинного обучения, не погружаясь в лежащие в основе алгоритмы.
Библиотека — это набор файлов, содержащих код, который можно импортировать в свое приложение.
Фреймворк может быть набором библиотек, необходимых для построения модели без понимания особенностей лежащих в основе алгоритмов. Однако разработчикам нужно знать, каким образом эти алгоритмы работают, чтобы корректно интерпретировать результат.
#10 Matplotlib
Matplotlib — это интерактивная кроссплатформенная библиотека для создания двумерных диаграмм. С ее помощью можно создавать качественные графики и диаграммы в нескольких форматах.
Преимущества:
Недостатки:
#9 Natural Language Toolkit (NLTK)
NLTK — это фреймворк и набор библиотек для разработки системы символической и статистической обработки естественного языка (natural language processing, NLP). Стандартный инструмент для NLP в Python.
Преимущества:
Недостатки:
#8 Pandas
Это библиотека Python для высокопроизводительных и одновременно понятных структур данных и инструментов анализа данных в Python.
Преимущества:
Недостатки:
#7 Scikit-Learn
Эта библиотека построена на основе matplotlib, NumPy и SciPy. Она предоставляет несколько инструментов для анализа и добычи данных.
Преимущества:
Недостатки:
#6 Seaborn
Библиотека для создания статистических графиков в Python. Построена на базе matplotlib и имеет интеграцию со структурами данных pandas.
Преимущества
Недостатки:
#5 NumPy
NumPy добавляет обработку многомерных массивов и матриц в Python, а также крупные наборов данных для высокоуровневых математических функций. Обычно используется для научных вычислений. Следовательно, это один из самых используемых пакетов Python для машинного обучения.
Преимущества:
Недостатки:
#4 Keras
Очень популярная библиотека для машинного обучения в Python, предоставляющая высокоуровневое API нейронной сети, работающее поверх TensorFlow, CNTK или Theano.
Преимущества:
Недостатки:
#3 SciPy
Популярная библиотека с разными модулями для оптимизации, линейной алгебры, интеграции и статистики.
Преимущества:
Недостатки:
#2 Pytorch
Популярная библиотека, построенная на базе Torch, которая, в свою очередь, сделана на C и завернута в Lua. Изначально создавалась Facebook, но сейчас используется в Twitter, Salefsorce и многих других организациях.
Преимущества:
Недостатки:
#1 TensorFlow
Изначально разработанная Google, TensorFlow — это высокопроизводительная библиотека для вычислений с помощью графа потока данных.
Под капотом это в большей степени фреймворк для создания и работы вычислений, использующих тензоры. Чаще всего TensorFlow используется в нейронных сетях и глубоком обучении. Это делает библиотеку одной из самых популярных.
Преимущества:
Недостатки:
Прямо сейчас на курс 50% скидка!
Выводы
Теперь вы знаете разницу в библиотеках и фреймворках Python. Можете оценить преимущества и недостатки самых популярных библиотек машинного обучения.
Топ-7 библиотек Python для машинного обучения
Python – это океан библиотек, которые служат различным целям. Как разработчик вы должны хорошо разбираться в лучших из них. Чтобы помочь вам в этом, мы расскажем про топ-7 библиотек Python для машинного обучения, которые нужно знать в 2021 году.
Вступление
Python является одним из самых широко используемых языков программирования. Он популярен среди разработчиков по множеству причин, и одна из них — удивительно большая коллекция библиотек.
Кроме того, этот язык крайне прост и легок в освоении – идеально для новичка и не только!
Простота Python привлекает многих разработчиков к созданию новых библиотек для машинного обучения. А благодаря огромной коллекции библиотек Python становится чрезвычайно популярным среди экспертов по машинному обучению. Таким образом, круг замыкается, а популярность Python только растет.
Что ж, давайте приступим! Первая библиотека в нашем топ-7 лучших библиотек Python для машинного обучения – это TensorFlow.
TensorFlow
Если вы в настоящее время работаете над проектом машинного обучения на Python, вероятно, вы уже слышали о TensorFlow — популярной библиотеке с открытым исходным кодом.
Эта библиотека была разработана Google в сотрудничестве с Brain Team. Она является частью почти каждого приложения Google для машинного обучения.
TensorFlow работает как вычислительная библиотека для написания новых алгоритмов, включающих большое количество тензорных операций. Поскольку нейронные сети можно легко выразить в виде вычислительных графов, их можно реализовать с помощью TensorFlow в виде серии операций над тензорами. Тензоры – это n-мерные матрицы, которые представляют данные.
Особенности TensorFlow
TensorFlow оптимизирована по скорости. Она использует такие методы, как XLA, для быстрых операций линейной алгебры.
Использование TensorFlow
На самом деле вы пользуетесьTensorFlow ежедневно, пускай и не напрямую. Эта библиотека задействована в работе таких приложений, как Google Voice Search или Google Фото.
Для использования в Python TensorFlow имеет сложный интерфейс. Ваш код Python будет компилироваться, а затем выполняться в механизме распределенного выполнения TensorFlow, созданном с использованием C и C++.
Количество вариантов применения TensorFlow буквально неограниченно, и в этом ее прелесть.
Марк Лутц «Изучаем Python»
Скачивайте книгу у нас в телеграм
Scikit-Learn
Это библиотека Python, связанная с NumPy и SciPy. Считается одной из лучших библиотек для работы с комплексными данными.
В эту библиотеку вносится много изменений. Одна из модификаций – это функция перекрестной проверки, предоставляющая возможность использовать более одной метрики. Многие методы обучения, такие как логистическая регрессия и метод ближайших соседей, были немного улучшены.
Особенности Scikit-Learn
Где мы используем Scikit-Learn?
Эта библиотека содержит множество алгоритмов для реализации стандартных задач машинного обучения и интеллектуального анализа данных, таких как уменьшение размерности, классификация, регрессия, кластеризация и выбор модели.
Numpy
Numpy считается одной из самых популярных библиотек машинного обучения в Python.
Для выполнения многих операций с тензорами TensorFlow и другие библиотеки под капотом используют Numpy.
Лучшая и самая важная особенность Numpy — интерфейс массива.
Особенности Numpy
Использование Numpy
Этот интерфейс можно использовать для выражения изображений, звуковых волн и других двоичных необработанных потоков в виде массива действительных чисел в n-мерном формате.
В общем, библиотека полезна для full-stack разработчиков, занимающихся задачами машинного обучения.
Keras
Keras считается одной из самых крутых библиотек машинного обучения в Python. Она обеспечивает более простой механизм выражения нейронных сетей. Keras также предоставляет одни из лучших утилит для компиляции моделей, обработки наборов данных, визуализации графиков и многого другого.
В бэкэнде Keras внутренне использует Theano или TensorFlow. Также можно использовать некоторые из самых популярных нейронных сетей, такие как CNTK. Keras относительно медленная, если сравнивать ее с другими библиотеками машинного обучения. Дело в том, что эта библиотека создает вычислительный граф, используя внутреннюю инфраструктуру, а затем использует его для выполнения операций. Все модели в Keras портативные.
Особенности Keras
Где мы используем Keras?
Вы уже постоянно взаимодействуете с функциями, созданными с помощью Keras. Эта библиотека используется в Netflix, Uber, Yelp, Instacart, Zocdoc, Square и многих других. Она особенно популярна среди стартапов, продукты которых завязаны на машинном обучении.
Keras содержит множество реализаций часто используемых строительных блоков нейронной сети, таких как слои, цели, функции активации, оптимизаторы и множество инструментов, облегчающих работу с изображениями и текстовыми данными.
Кроме того, эта библиотека предоставляет множество предварительно обработанных наборов данных и предварительно обученных моделей, таких как MNIST, VGG, Inception, SqueezeNet, ResNet и т.д.
Keras является фаворитом среди исследователей глубокого обучения, занимая второе место. Она применяется исследователями в крупных научных организациях, в частности, в ЦЕРНе и НАСА.
PyTorch
PyTorch – крупнейшая библиотека машинного обучения, которая позволяет разработчикам выполнять тензорные вычисления с ускорением графического процессора, создавать динамические вычислительные графы и автоматически вычислять градиенты. Помимо этого, PyTorch предлагает богатые API-интерфейсы для решения проблем приложений, связанных с нейронными сетями.
Эта библиотека машинного обучения основана на Torch, библиотеке с открытым исходным кодом, реализованной на C с оболочкой на Lua.
Данная библиотека была представлена в 2017 году, и с момента выпуска она лишь набирает популярность и привлекает все большее количество разработчиков.
Особенности PyTorch
Использование PyTorch
PyTorch в основном используется для обработки естественного языка.
Эта библиотека разработана исследовательской группой Facebook по искусственному интеллекту. На ней построено ПО «Pyro» для вероятностного программирования в Uber.
PyTorch превосходит TensorFlow по многим параметрам. Кроме того, в последние дни она привлекает к себе много внимания.
SciPy
SciPy – это библиотека машинного обучения для разработчиков приложений. При этом нужно понимать разницу между библиотекой SciPy и стеком SciPy. Библиотека SciPy содержит модули для оптимизации, линейной алгебры, интеграции и статистики.
Особенности SciPy
Использование SciPy
SciPy использует массивы NumPy в качестве базовой структуры данных и поставляется с модулями для различных часто используемых задач в научном программировании.
С помощью SciPy легко выполняются задачи, связанные с линейной алгеброй, интегрированием (исчислением), решением обыкновенных дифференциальных уравнений и обработкой сигналов.
Pandas
Pandas – это библиотека машинного обучения на Python, предоставляющая структуры данных высокого уровня и широкий спектр инструментов для анализа.
Одна из замечательных особенностей этой библиотеки – возможность проводить сложные операции с данными с помощью одной или двух команд.
Pandas имеет много встроенных методов для группировки, объединения данных и фильтрации. Кроме того, в ней также есть функциональность временных рядов.
Особенности Pandas
Pandas позаботится о том, чтобы весь процесс манипулирования данными был проще. Поддержка таких операций, как повторное индексирование, итерация, сортировка, агрегирование, конкатенация и визуализация, являются одними из основных функций Pandas.
Использование Pandas
Pandas постоянно совершенствуется. Улучшения касаются ее способности группировать и сортировать данные, выбирать наиболее подходящие выходные данные для применяемого метода. Кроме того, это ещё и обеспечение поддержки для выполнения операций с настраиваемыми типами.
Pandas при использовании с другими библиотеками и инструментами обеспечивает высокую функциональность и хорошую гибкость. Кроме того, она крайне полезна при решении задач анализа данных.
Заключение
Мы надеемся, что этот топ-7 библиотек Python для машинного обучения помог вам сориентироваться в том, какие ML-библиотеки доступны питонистам. Изучите их подробнее и непременно используйте в своих проектах!
5 лучших библиотек машинного обучения
Sep 15, 2019 · 3 min read
За последние несколько лет рост машинного обучения достиг стремительных темпов. Это связано с выпуском библиотек машинного обучения (МО)/глубокого обучения (ГО), которые абстрагируются от сложности скаффолдинга или реализации модели МО/ГО.
МО/ГО включает в себя множество математических вычислений и операций, особенно Matrix. С помощью МО/ГО даже простой новичок в МО может начать работу как профессионал.
Машинное обучение использует математические мод е ли общего назначения для ответа на конкретные вопросы с помощью данных. На протяжении многих лет машинное обучение использовалось для обнаружения спам-писем, создания умных ракет, интеллектуальных роботов и домов, обнаружения объектов с помощью компьютерного зрения, распознавания речи, а также для создания системы, которая может писать (романы, стихи и т. д.), рекомендовать продукты клиентам и прогнозировать стоимость товаров.
В этой статье мы обсудим самые популярные библиотеки МО/ГО.
TensorFlow
Это самая популярная библиотека МО/ГО в современном мире. По выходу ее популярность стремительно возросла и превзошла уже существующие библиотеки благодаря простоте API. Google выпустил ее в ноябре 2015 года.
Она написана на Python, но теперь есть и порт JavaScript: tensorflow.js. Его появление связано с ростом популярности JavaScript после релиза Node.js.
TensorFlow — бесплатная open-source библиотека для потоков данных и дифференцированного программирования; это символическая математическая библиотека, которая также используется для приложений машинного обучения, таких как нейронные сети.
Theano
Theano — это библиотека Python для быстрых числовых вычислений, которая может работать на CPU или GPU. Она разработана группой LISA (теперь MILA) в Монреальском университете в Канаде, и названа в честь древнегреческого математика, жены Пифагора, Феано.
Theano — это библиотека Python и оптимизирующий компилятор для манипулирования и оценки математических выражений, в особенности матрично-значных.
PyTorch
Это библиотека глубокого обучения, созданная Facebook и написанная на Python.
По сравнению с Tensorflow она более простая для изучения и использования, однако Tensorflow все равно превосходит ее по популярности. Причина заключается в том, что Tensorflow включает в себя широкий спектр применения в МО/ГО. Тем не менее PyTorch предоставляет более простой API для работы с нейронными сетями.
PyTorch — это библиотека глубокого обучения, основанная на библиотеке Torch и используемая для таких приложений, как компьютерное зрение и обработка естественного языка.
Scikit-learn
Эта популярная библиотека МО создана на NumPy, SciPy и matplotlib. Основное внимание в ней уделяется алгоритмам МО:
Как и PyTorch, эта библиотека менее развита по сравнению с Tensorflow, однако она предоставляет простые и эффективные инструменты для обнаружения и анализа данных.
Keras
Keras — это библиотека ГО, которая объединяет функции других библиотек, таких как Tensorflow, Theano и CNTK, написанная на Python.
У Keras есть преимущество над конкурентами, такими как Scikit-learn и PyTorch, поскольку она работает поверх Tensorflow.
Keras может работать поверх TensorFlow, Microsoft Cognitive Toolkit, Theano или PlaidML. Разработанная для быстрого экспериментирования с глубокими нейронными сетями, она ориентируется на удобство использования, модульность и расширяемость.