Руководство для начинающих по машинному обучению и структуре Data Science

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

Machine Learning

  • Scikit-learn — машинное обучение на Python;
  • Shogun — инструментарий машинного обучения;
  • xLearn — высокопроизводительный, простой и масштабируемый пакет для машинного обучения;
  • Reproducible Experiment Platform (REP) — набор инструментов машинного обучения;
  • modAL — модульная структура обучения для Python3;
  • Sparkit-learn — PySpark + Scikit-learn = Sparkit-learn;
  • mlpack — масштабируемая библиотека машинного обучения C ++;
  • dlib — инструментарий для создания реальных приложений машинного обучения и анализа данных на C ++;
  • MLxtend — модули расширения и помощника для библиотек анализа данных и машинного обучения Python;
  • tick — модуль для статистического обучения;
  • sklearn-extensions — сводный пакет расширений для scikit-learn;
  • civisml-extensions — scikit-learn оценка от Civis Analytics;
  • scikit-multilearn — классификация по нескольким меткам для Python;
  • tslearn — инструментарий машинного обучения, предназначенный для данных временных рядов;
  • seqlearn — набор инструментов для классификации последовательностей для Python;
  • pystruct — простая структура обучения для python;
  • sklearn-expertsys — высокоинтерпретируемые классификаторы для обучения scikit;
  • skutil — набор классов scikit-learn и h2o;
  • sklearn-crfsuite — API в стиле scikit-learn для CRFsuite;
  • RuleFit — реализация правила соответствия;
  • metric-learn — метрические алгоритмы обучения в Python;
  • pyGAM — обобщенные аддитивные модели в Python;
  • luminol — библиотека обнаружения и корреляции аномалий.

Автоматизация машинного обучения

  • TPOT — инструмент автоматизированного машинного обучения, который оптимизирует конвейеры с использованием генетического программирования;
  • auto-sklearn — автоматизированный инструментарий машинного обучения и замены оценки scikit-learn;
  • MLBox — мощная библиотека Python для автоматизированного машинного обучения.

Ансамбль методов

  • ML-Ensemble — высокопроизводительное обучение;
  • brew — API Python Ensemble;
  • Stacking — Простая и полезная библиотека стеков, написанная на Python;
  • stacked_generalization — библиотека для обобщения стеков машинного обучения;
  • vecstack — пакет Python для стеков.

Несбалансированные наборы данных

  • imbalanced-learn — модуль для выполнения различных методов;
  • imbalanced-algorithms — основы Python реализации алгоритмов обучения на несбалансированных данных.

Случайные леса

  • rpforest — случайные леса проекционных деревьев;
  • Random Forest Clustering — кластеризация с использованием случайных лесов;
  • sklearn-random-bits-forest — оболочка программы Random Bits Forest;
  • rgf_python — оболочка Python из упорядоченного леса.

Extreme Learning Machine

  • Python-ELM — реализация экстремального машинного обучения на Python;
  • Python Extreme Learning Machine (ELM) — метод машинного обучения, используемый для задач классификации/регрессии;
  • hpelm ![alt text][gpu] — высокопроизводительная реализация Extreme Learning Machines.

Ядерный метод

  • pyFM — факторизация в Python;
  • fastFM — библиотека для факторизации;
  • tffm — реализация TensorFlow факторизации произвольного порядка;
  • liquidSVM — реализация SVM;
  • scikit-rvm — реализация векторной релевантности с использованием API scikit-learn.

Повышение градиента

  • XGBoost ![alt text][gpu] — масштабируемое, переносимое и распределенное повышение градиента;
  • LightGBM ![alt text][gpu] — быстрое, распределенное, высокопроизводительное повышение градиента от Microsoft;
  • CatBoost ![alt text][gpu] — повышение градиента с открытым исходным кодом для библиотеки деревьев решений от Яндекса;
  • InfiniteBoost — построение бесконечных ансамблей с градиентным спуском;
  • TGBoost — крошечное градиентное дерево.

Глубокое обучение

Keras

  • Keras — высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх TensorFlow, CNTK или Theano;
  • keras-contrib — сообщество Keras
  • HyperasKeras + Hyperopt: очень простая оболочка для удобного гиперпараметра;
  • Elephas — распределенное глубокое обучение с Keras&Spark;
  • Hera — тренируйте/оценивайте модель Keras, передавайте метрики на панель инструментов в своем браузере;
  • Conx — на пути к глубокому обучению.

PyTorch

  • PyTorch — тензорные и динамические нейронные сети в Python с ускорением GPU;
  • torchvision — наборы данных, преобразования и модели для Computer Vision;
  • torchtext — загрузчики данных и абстракции для текста и НЛП;
  • torchaudio — аудио библиотека для PyTorch;
  • ignite — высокоуровневая библиотека для обучения нейронных сетей в PyTorch;
  • PyToune — подробный Keras фреймворк и утилиты для PyTorch;
  • skorch — библиотека нейронной сети, совместимая с scikit-learn, заключающая в себе pytorch;
  • PyTorchNet — абстракция для обучения нейронных сетей;
  • Aorun — API, Keras, PyTorch в качестве бэкэнда;
  • pytorch_geometric — библиотека расширений углубленного обучения для PyTorch.

Tensorflow

  • TensorFlow — вычисления с использованием потоков данных для масштабируемого машинного обучения от Google;
  • TensorLayer — библиотека для глубокого обучения и обучения для исследователей и инженеров;
  • TFLearn — библиотека глубокого обучения с высокоуровневым API для TensorFlow;
  • Sonnet — библиотека нейросетей на основе TensorFlow от DeepMind;
  • TensorForce — библиотека TensorFlow для прикладного обучения;
  • tensorpack — учебный интерфейс нейронной сети на TensorFlow;
  • Polyaxon — платформа, которая помогает вам создавать, управлять и контролировать модели глубокого обучения;
  • Horovod — распределенная обучающая среда для TensorFlow;
  • tfdeploy — развертывание графиков тензорного потока;
  • hiptensorflow ![alt text][amd] — Tensorflow с поддержкой ROCm/HIP;
  • TensorFlow Fold — глубокое обучение с динамическими вычислительными графами в TensorFlow;
  • tensorlm — библиотека для генерации текста/языковых моделей на уровне символов и слов с помощью RNN
  • TensorLight — фреймворк высокого уровня для TensorFlow;
  • Mesh TensorFlow — упрощение параллелизма моделей.

Theano

  • Theano — это библиотека Python, которая позволяет определять, оптимизировать и оценивать математические выражения;
  • Lasagne — легкая библиотека для построения и обучения нейронных сетей;
  • nolearn — библиотека нейронных сетей, совместимая с scikit-learn;
  • Blocks — фреймворк Theano для построения и обучения нейронных сетей;
  • platoon — мини-фреймворк для Theano;
  • NeuPy — библиотека Python для искусственных нейронных сетей и глубокого обучения;
  • scikit-neuralnetwork — глубокие нейронные сети без обучающей скалы;
  • Theano-MPI — фреймворк для обучения моделей глубокого обучения, построенных в Theano.

MXNet

  • MXNet — глубокое обучение с динамическим, учитывающим мутацию планировщиком потоков данных;
  • Gluon — понятный, лаконичный, простой, но мощный и эффективный API для глубокого обучения;
  • MXbox — простой, эффективный и гибкий набор инструментов для визуализации фреймворка mxnet;
  • gluon-cv — обеспечивает реализацию современных моделей глубокого обучения в компьютерном зрении;
  • gluon-nlp — создание НЛП — легко;
  • MXNet ![alt text][amd] — HIP-порт MXNet.

Caffe

  • Caffe — быстрый открытый фреймворк для глубокого обучения;
  • Caffe2 — легкая, модульная и масштабируемая среда глубокого обучения;
  • hipCaffe ![alt text][amd] — HIP-порт Caffe.

CNTK

  • CNTK — Microsoft Cognitive Toolkit, набор инструментов для глубокого изучения с открытым исходным кодом.

Chainer

  • Chainer — гибкая структура для нейронных сетей;
  • ChainerRL — библиотека для глубокого обучения, построенная на базе Chainer;
  • ChainerCV — библиотека для глубокого обучения компьютерному зрению;
  • ChainerMN — масштабируемое распределенное глубокое обучение с Chainer;
  • scikit-chainer — scikit-learn, как интерфейс к цепочке.

Другие

  • Neon — эталонная платформа глубокого обучения Intel Nervana, обеспечивающая наилучшую производительность на всех аппаратных средствах;
  • Tangent — отладочные производные от источника к источнику в чистом Python;
  • autograd — эффективное вычисление производных кода NumPy;
  • Myia — рамки глубокого обучения;
  • nnabla — библиотеки нейронных сетей от Sony.

Model explanation

  • Auralisation — аурализация изученных особенностей в CNN (для аудио);
  • CapsNet-Visualization — визуализация слоев CapsNet, для лучшего понимания, как всё работает;
  • lucid — набор инфраструктуры и инструментов для исследования интерпретируемости нейронной сети;
  • Netron — визуализатор для моделей глубокого обучения и машинного обучения;
  • FlashLight — инструмент визуализации для нейросети;
  • tensorboard-pytorch — тензорная доска для pytorch;
  • anchor — высокоточные модельно-агностические объяснения;
  • aequitas — инструментарий аудита предвзятости и справедливости;
  • Contrastive Explanation — сравнительное объяснение;
  • yellowbrick — инструменты визуального анализа и диагностики для облегчения выбора модели машинного обучения;
  • scikit-plot — интуитивно понятная библиотека для добавления функций построения графиков к объектам scikit-learn;
  • shap — унифицированный подход для объяснения результатов любой модели машинного обучения;
  • ELI5 — библиотека для отладки / проверки классификаторов машинного обучения и объяснения их прогнозов;
  • Lime — объяснение предсказаний любого классификатора машинного обучения;
  • FairML — набор инструментов python, проверяющий модели машинного обучения на предмет предвзятости;
  • PDPbox — инструмент для построения графика частичной зависимости;
  • pyBreakDown — реализация Python для пакета R breakDown;
  • PyCEbox — панель инструментов Python для отдельного условного ожидания;
  • Skater — библиотека Python для интерпретации моделей;
  • tensorflow/model-analysis — инструменты анализа модели для TensorFlow;
  • themis-ml — библиотека, которая реализует алгоритмы машинного обучения;
  • treeinterpreter [alt text][skl] — интерпретация дерева решений scikit-learn и предсказания случайных лесов.

Обучение с подкреплением

  • OpenAI Gym — инструментарий для разработки и сравнения алгоритмов обучения с подкреплением.

Распределённые вычисления

  • PySpark — модель программирования Spark для Python;
  • Veles — распределенная платформа машинного обучения от Samsung;
  • Jubatus — платформа и библиотека для распределенного онлайн машинного обучения;
  • DMTK — Microsoft Distributed Machine Learning Toolkit;
  • PaddlePaddle — параллельное распределенное глубокое обучение от Baidu;
  • dask-ml — распределенное и параллельное машинное обучение;
  • Distributed — Распределенные вычисления в Python.

Вероятностные методы

  • pomegranate ![alt text][cp] — вероятностные и графические модели для Python;
  • pyro — гибкая, масштабируемая, глубоко вероятностная библиотека программирования, построенная на PyTorch;
  • ZhuSuan — Байесовское глубокое обучение;
  • PyMC — Байесовское стохастическое моделирование в Python;
  • PyMC3 — пакет Python для байесовского статистического моделирования и вероятностного машинного обучения;
  • sampled — декоратор для многоразовых моделей в PyMC3;
  • Edward — библиотека для вероятностного моделирования, логического вывода и критики;
  • InferPy — глубокое вероятностное моделирование;
  • GPflow — гауссовские процессы в TensorFlow;
  • PyStan — байесовский вывод с использованием сэмплера No-U-Turn;
  • gelato — байесовский десерт для лазаньи;
  • sklearn-bayes — пакет Python для байесовского машинного обучения с scikit-learn API
  • bayesloop — вероятностная структура программирования, которая облегчает выбор объективной модели с изменяющимся во времени параметром;
  • PyFlux — библиотека временных рядов с открытым исходным кодом для Python;
  • skggm — оценка общих графических моделей;
  • pgmpy — библиотека python для работы с вероятностными графическими моделями;
  • skpro — контролируемая предметно-независимая структура прогнозирования для вероятностного моделирования;
  • Aboleth — базовая структура TensorFlow для байесовского глубокого обучения и приближения гауссовского процесса;
  • PtStat — вероятностное программирование и статистический вывод в PyTorch;
  • PyVarInf — байесовские методы глубокого обучения с вариационным выводом для PyTorch;
  • emcee — набор инструментов для выборки ансамбля Python для аффинно-инвариантной MCMC;
  • hsmmlearn — библиотека для скрытых полумарковских моделей с явными длительностями;
  • pyhsmm — байесовский вывод в HSMM и HMM;
  • GPyTorch — высокоэффективная и модульная реализация гауссовских процессов в PyTorch;
  • Bayes — Python реализации вариантов байесовского алгоритма.

Генетическое программирование

  • gplearn — генетическое программирование на Python;
  • DEAP — распределенные эволюционные алгоритмы в Python;
  • karoo_gp — платформа генетического программирования для Python с поддержкой GPU;
  • monkeys — строго типизированная среда генетического программирования для Python;
  • sklearn-genetic — модуль выбора генетических признаков для scikit-learn.

Оптимизация

  • Spearmint — байесовская оптимизация;
  • SMAC3 — конфигурация последовательного алгоритма на основе модели;
  • Optunity — библиотека, содержащая различные оптимизаторы для настройки гиперпараметров;
  • hyperopt — оптимизация распределенного асинхронного гиперпараметра в Python;
  • hyperopt-sklearn — оптимизация гиперпараметров для sklearn;
  • sklearn-deap — эволюционные алгоритмы вместо gridsearch в scikit-learn;
  • sigopt_sklearn — оболочки SigOpt для методов scikit-learn;
  • Bayesian Optimization — Python для глобальной оптимизации с использованием гауссовских процессов;
  • SafeOpt — безопасная байесовская оптимизация;
  • scikit-optimize — последовательная оптимизация на основе модели с scipy.optimize интерфейсом;
  • Solid — комплексная среда безградиентной оптимизации, написанная на Python;
  • PySwarms — исследовательский инструментарий для оптимизации роя частиц в Python;
  • Platypus — бесплатная библиотека Python с открытым исходным кодом для многоцелевой оптимизации;
  • GPflowOpt — байесовская оптимизация с использованием GPflow;
  • POT — оптимальная транспортная библиотека Python;
  • Talos — оптимизация гиперпараметров для моделей Keras.

Обработка естественного языка

  • NLTK — модули, наборы данных и учебные пособия, поддерживающие исследования и разработки в области обработки естественного языка;
  • CLTK — инструментарий классического языка;
  • PSI-Toolkit — инструментарий обработки естественного языка;
  • pyMorfologik — польский морфологический анализатор;
  • skift — scikit-learn оболочки для Python fastText;
  • Phonemizer — простой конвертер текста в фонемы для нескольких языков.

Компьютерное прослушивание

  • librosa — библиотека Python для анализа аудио и музыки;
  • Yaafe — извлечение аудио функций;
  • aubio — библиотека для анализа аудио и музыки;
  • Essentia — библиотека для анализа, описания и синтеза аудио и музыки;
  • LibXtract — простая, портативная, легкая библиотека функций извлечения аудио функций;
  • Marsyas — анализ, поиск и синтез музыки для звуковых сигналов;
  • muda — библиотека для дополнения аннотированных аудиоданных;
  • madmom — библиотека обработки аудио- и музыкальных сигналов Python.

Компьютерное зрение

  • OpenCV — библиотека компьютерного зрения с открытым исходным кодом;
  • scikit-image — обработка изображений SciKit;
  • imgaug — увеличение изображения для экспериментов по машинному обучению;
  • imgaug_extension — дополнения для imgaug;
  • Augmentor — библиотека изображений в Python для машинного обучения;
  • albumentations — быстрая библиотека изображений и простая в использовании оболочка для других библиотек.

Feature engineering

  • Featuretools — автоматизированное проектирование;
  • scikit-feature — репозиторий выбора функций в Python;
  • skl-groups — аддон scikit-learn для работы с функциями, основанными на set/”group”;
  • Feature Forge — набор инструментов для создания и тестирования функции машинного обучения;
  • boruta_py — реализации метода выбора соответствующих объектов Boruta;
  • BoostARoota — быстрый алгоритм выбора функции xgboost;
  • few — особенность инженерной оболочки для sklearn;
  • scikit-rebate — Scibit-Learn-совместимая реализация ReBATE на Python;
  • scikit-mdr — совместимая со sklearn реализация Python Multifactor Dimensionality Reduction (MDR) для построения объектов;
  • tsfresh — автоматическое извлечение соответствующих функций из временных рядов.

Обработка данных

  • pandas — мощный инструмент анализа д��нных Python;
  • sklearn-pandas — интеграция Pandas со sklearn;
  • alexander — оболочка, которая делает scikit-learn полностью совместимым с Pandas;
  • blaze — взаимодействие NumPy и Pandas с большими данными;
  • pandasql — позволяет запрашивать pandas DataFrames с использованием синтаксиса SQL;
  • pandas-gbq — Pandas Google Big Query;
  • xpandas — универсальные контейнеры данных 1d/2d с функциональностью Transformers для анализа данных;
  • Fuel — data pipeline framework для машинного обучения;
  • Arctic — высокопроизводительное хранилище данных для временных рядов и тиковых данных;
  • pdpipe — удобные конвейеры для Pandas DataFrames;
  • meza — набор инструментов Python для обработки табличных данных;
  • pandas-ply — функциональная обработка данных для Pandas;
  • Dplython — Dplyr для Python;
  • pysparkling — чистая Python-реализация интерфейсов Apache Spark RDD и DStream;
  • quinn — pyspark метод для повышения производительности труда разработчиков;
  • Dataset — помогает вам удобно работать со случайными или последовательными пакетами ваших данных и определять их обработку;
  • swifter — пакет, который максимально быстро применяет любую функцию к кадру данных или серии Pandas.

Статистика

  • statsmodels — статистическое моделирование и эконометрика в Python;
  • stockstats — упаковщик StockDataFrame на основе pandas.DataFrame;
  • simplestatistics — простые статистические функции, реализованные в удобочитаемом Python;
  • weightedcalcs — утилита на основе Pandas для расчета средневзвешенных значений, медиан, распределений, стандартных отклонений и т.д.;
  • scikit-posthocs — попарные множественные сравнения пост-специальные тесты;
  • pysie — обеспечивает реализацию Python механизма статистического вывода.

Визуализация

  • Matplotlib — plotting with Python;
  • seaborn — визуализация статистических данных с использованием matplotlib;
  • Bokeh — интерактивная веб-верстка для Python;
  • Alphalens — анализ эффективности прогнозных фондовых факторов;
  • python-ternary — библиотека троичных графиков для python с matplotlib;
  • Naarad — фреймворк для анализа эффективности и оценки услуг.

Оценка

  • kaggle-metrics — метрики для соревнований Kaggle;
  • Metrics — метрика оценки машинного обучения;
  • sklearn-evaluation — упрощение оценки моделей scikit-learn графиков и таблиц.

Расчеты

  • numpy — фундаментальный пакет, необходимый для научных вычислений на Python;
  • Dask — параллельные вычисления с расписанием задач;
  • bottleneck — быстрые функции массива NumPy, написанные на языке C;
  • minpy — интерфейс NumPy со смешанным внутренним исполнением;
  • CuPy — NumPy-подобный API, ускоренный с помощью CUDA;
  • scikit-tensor — библиотека Python для полилинейной алгебры и тензорных факторизаций;
  • quaternion — поддержка кватернионов в numpy;
  • adaptive — адаптивная и параллельная выборка математических функций.

Пространственный анализ

  • GeoPandas — инструменты Python для географических данных;
  • PySal — библиотека пространственного анализа Python.

Квантовые вычисления

  • QML — Python Toolkit для квантового машинного обучения.

Всем знаний!