ТОП-4 Python-библиотек машинного обучения по версии Kaggle за 2019 год

Kaggle – это одна из самых популярных онлайн-площадок для соревнований по машинному обучению. Здесь разные компании публикуют бизнес-задачу, которую участники должны решить с помощью методов Machine Learning. Организатор предоставляет датасет по проблеме и выдают победителям денежный приз, размер которого может достигать 1 миллиона долларов [1].

Каждый год Kaggle публикует исследования об участниках соревнований, например, их образование, пол, используемый язык программирования, библиотеки и прочие нюансы. В этой статье мы расскажем о 4 наиболее используемых библиотеках Machine Learning согласно исследованиям, проведенными Kaggle 7 месяцев назад [2].

1. Scikit-learn

Это библиотека стоит на первом месте в списке инструментов, которые используют участники Kaggle. Scikit-learn – одна из самых больших и разнообразных библиотек, предоставляющая разнообразные средства машинного обучения: алгоритмы классификации, регрессии, кластеризации, уменьшения размерности, настройка параметров, подготовка данных, методы композиции, небольшие датасеты, метрики и т.д. Одних только алгоритмов классификации насчитывается 41, регрессии — 95, а кластеризации – 105 разновидностей. Scikit-learn использует массивы NumPy, что ускоряет работу алгоритмов. Почему NumPy такой быстрый, подробнее об этом мы рассказывали здесь. Из недостатков можно отметить акцент на классических алгоритмах Machine Learning – методы глубокого обучения здесь практически не реализованы.

2. Keras

Keras – высокоуровневая библиотека глубокого обучения для Python. Основное применение — конструирование архитектуры нейронных сетей: полносвязных, рекуррентных, сверточных и т.д. Keras не занимается работой с тензорами, поэтому здесь поддерживаются библиотеки TensorFlow, Theano, Microsoft Cognitive Toolkit (CNTK) [3, 4]. Помимо этого, Keras позволяет работать с CPU и GPU. Если требуется построить сложную сетевую архитектуру с множественными слоями и моделями, то Keras будет незаменимым инструментом.

3. XGBoost

Библиотека XGBoost обеспечивает работу алгоритмов градиентного бустинга для языков программирования Python, C++, R, Java, Julia, Scala. До волны глубокого обучения здесь в основном использовались ядерные методы и случайные леса. В 2014 году начал распространяться метод градиентного бустинга [5]. Его считали «святым Граалем» соревнований по машинному обучению. Были выиграны соревнований сего помощью [6]. Тогда же появилась библиотека XGBoost, реализующая деревья решений (decision tree) с использованием градиентного бустинга.

Позже методы глубокого обучения сместили градиентный бустинг с 1-го места. XGBoost поддерживает так называемые параллельные деревья бустинга: GBDT и GBM, которые до сих пор активно используются Data Scientist’ам для решения многих задач. Например, данная библиотека предоставляет такие особенности, как:

  • Распараллеливание построения деревьев с использованием всех ядер CPU во время обучения (GPU тоже поддерживается).
  • Распределенные вычисления для обучения больших моделей с использованием машин кластеров.
  • Внеядерные вычисления для больших наборов данных, которые не помещаются в оперативную память.
  • Оптимизированное использование кэширования [7, 8].

4. TensorFlow

Разработанная под руководством Google Brain, библиотека TensorFlow позволяет работать с тензорами и конструировать нейронные сети. Раньше она использовалась в связке с Keras, но начиная с версии 2.0, в TensorFlow был добавлен модуль tf.keras. Планируется, что уже в ближайшем будущем он полностью заменит Keras. Об этом написал в сенятбре 2019 года сам создатель Keras — Франсуа Шолле [9]. Поэтому с переходом разработчиков на TensorFlow 2.0 не придется явно работать с Keras, если не требуется Theano или CNTK. На сегодня TensorFlow – это не отдельная библиотека, а целый комплексный фреймворк машинного обучения.

 

В следующей статье мы поговорим об использовании Python для математиков. А как на практике использовать все эти и другие Python-библиотеки в Big Data, Machine Learning и других проектах Data Science, вы узнаете на наших курсах по Python в лицензированном учебном центре обучения и повышения квалификации ИТ-специалистов в Москве.

Источники
  1. https://www.kaggle.com/c/data-science-bowl-2017/overview/prizes
  2. https://www.kaggle.com/kaggle-survey-2019
  3. https://keras.io/api/utils/backend_utils/
  4. https://keras.io/why_keras/
  5. https://www.analyticsvidhya.com/blog/2018/09/an-end-to-end-guide-to-understand-the-math-behind-xgboost/
  6. https://github.com/dmlc/xgboost/tree/master/demo#machine-learning-challenge-winning-solutions
  7. https://xgboost.readthedocs.io/en/latest/build.html#building-xgboost-from-source
  8. https://machinelearningmastery.com/gentle-introduction-xgboost-applied-machine-learning/
  9. https://twitter.com/fchollet/status/1174018651449544704?lang=en

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

Поиск по сайту