Наука о данных

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

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

Что ты хочешь создать? Важный вопрос!

Вы пришли сюда, чтобы использовать машинное обучение (ML) . Вы внимательно обдумали, зачем? Когда вы выбираете библиотеку машинного обучения, вам нужно начать с того, как вы собираетесь ее использовать. Даже если вы просто заинтересованы в обучении, вам следует подумать о том, где используется машинное обучение и что ближе всего к вашим основным интересам. Вам также следует подумать, хотите ли вы сосредоточиться на том, чтобы что-то происходило на вашем локальном компьютере, или если вы заинтересованы в распределении своих вычислений на многих серверах.

Вначале заставьте что-нибудь работать.

Где используется машинное обучение

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

Вкратце о библиотеках:

  1. Scikit-Learn, Из scikit; Подпрограммы и библиотеки поверх NumPy, SciPy и Matplotlib. Эта библиотека напрямую полагается на подпрограммы математических библиотек, встроенных в Python. Вы устанавливаете scikit-learn со своим обычным менеджером пакетов Python. Scikit-learn небольшой и не поддерживает вычисления на GPU, это может вас отпугнуть, но это осознанный выбор. Этот пакет меньше по размеру, и с ним легче начать. Он по-прежнему хорошо работает в более крупных контекстах, хотя для создания гигантского вычислительного кластера вам понадобятся другие пакеты.
  2. Scikit-изображение Специально для изображений! Scikit-image имеет алгоритмы для анализа и обработки изображений. Вы можете использовать его для восстановления поврежденных изображений, а также для изменения цвета и других атрибутов изображения. Основная идея этого пакета - сделать все изображения доступными для NumPy, чтобы вы могли выполнять с ними операции как ndarrays. Таким образом, у вас есть изображения, доступные в качестве данных для запуска любых алгоритмов.
  3. Сёгун: База C ++ с понятными интерфейсами API для Python, Java, Scala и т. Д. Множество, а может быть и большинство алгоритмов, доступных для экспериментов. Он написан на C ++ для эффективности, также есть способ попробовать его в облаке. Shogun использует SWIG для взаимодействия со многими языками программирования, включая Python. Shogun охватывает большинство алгоритмов и широко используется в академическом мире. В пакете есть набор инструментов, доступный по адресу https: // www.ящик с инструментами сёгуна.org.
  4. Spark MLlib: В основном для Java, но доступен через библиотеку NumPy для разработчиков Python. Spark MLlib разработан командой Apache, поэтому он нацелен на распределенные вычислительные среды и должен запускаться с мастером и рабочими. Вы можете сделать это в автономном режиме, но реальная сила Spark - это способность распределять задания по множеству машин. Распределенный характер Spark делает его популярным среди многих крупных компаний, таких как IBM, Amazon и Netflix. Основная цель - добывать «большие данные», то есть все те хлебные крошки, которые вы оставляете, когда просматриваете страницы и делаете покупки в Интернете. Если вы хотите работать с машинным обучением, Spark MLlib - хорошее место для начала. Алгоритмы, которые он поддерживает, распространяются по всему диапазону. Если вы начинаете хобби-проект, это может быть не лучшая идея.
  5. H2O: Нацелен на бизнес-процессы, поэтому поддерживает прогнозы для рекомендаций и предотвращения мошенничества. Бизнес, H20.ai направлен на поиск и анализ наборов данных из распределенных файловых систем. Вы можете запустить его в большинстве обычных операционных систем, но основная цель - поддержка облачных систем. Он включает в себя большинство статистических алгоритмов, поэтому может использоваться для большинства проектов.
  6. Mahout: Сделано для распределенных алгоритмов машинного обучения. Это часть Apache из-за распределенного характера вычислений. Идея Mahout заключается в том, чтобы математики могли реализовать свои собственные алгоритмы. Это не для новичка, если вы только учитесь, вам лучше использовать что-то другое. Сказав это, Mahout может подключаться ко многим серверным приложениям, поэтому, когда вы что-то создали, посмотрите, хотите ли вы использовать Mahout для своего интерфейса.
  7. Клодера Орикс: В основном используется для машинного обучения с данными в реальном времени. Oryx 2 - это архитектура, которая объединяет всю работу по созданию системы, способной реагировать на данные в реальном времени. Слои также работают в разных временных рамках, с пакетным слоем, который строит базовую модель, и слоем скорости, который изменяет модель по мере поступления новых данных. Oryx построен на основе Apache Spark и создает целую архитектуру, которая реализует все части приложения.
  8. Theano: Theano - это библиотеки Python, интегрированные с NumPy. Это самый близкий к Python, который вы можете получить. При использовании Theano рекомендуется установить gcc. Причина в том, что Theano может скомпилировать ваш код в наиболее подходящий из возможных. Хотя Python великолепен, в некоторых случаях C быстрее. Таким образом, Theano может конвертировать в C и компилировать, чтобы ваша программа работала быстрее. При желании вы можете добавить поддержку графического процессора.
  9. Tensorflow: Тензор в названии указывает на математический тензор. Такой тензор имеет n мест в матрице, однако тензор - это многомерный массив. У TensorFlow есть алгоритмы для выполнения вычислений для тензоров, отсюда и название, вы можете называть их из Python. Он построен на C и C ++, но имеет интерфейс для Python. Это делает его простым в использовании и быстрым запуском. Tensorflow может работать на CPU, GPU или распределяться по сети, это достигается за счет механизма выполнения, который действует как слой между вашим кодом и процессором.
  10. Матплотлиб: Когда вы столкнулись с проблемой, которую можно решить с помощью машинного обучения, вы, скорее всего, захотите визуализировать свои результаты. Здесь на помощь приходит matplotlib. Он предназначен для отображения значений любых математических графиков и широко используется в академическом мире.

ЗАКЛЮЧЕНИЕ

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

Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...