XGBoost 101
В предыдущей статье мы познакомились с XGBoost и узнали о различных причинах его широкого признания в соревнованиях по машинному обучению, а также выяснили, что привело к тому, что XGBoost стал таким отличным исполнителем алгоритма. В этой статье мы узнаем об установке XGBoost в Anaconda с помощью Amazon SageMaker. Мы также узнаем о различных типах проблем, которые можно решить с помощью XGBoost, и о преимуществах использования XGBoost в Amazon SageMaker. Чтобы узнать об основах XGBoost, прочитайте предыдущую статью XGBoost - Выбор большинства чемпионов.
Типы проблем, решаемых XGBoost
XGBoost хорошо подходит для решения ряда различных типов задач машинного обучения с основными возможностями для решения проблем, в частности, классификации, регрессии и ранжирования. Остановимся на каждом из них подробнее.
Классификация
Классификация фокусируется на том, чтобы взять входные значения и затем разделить их на две более многочисленные другие категории. Возьмем пример обнаружения мошенничества. Цель системы обнаружения мошенничества - получить информацию о транзакции и затем определить, является ли транзакция мошеннической. Когда набор данных прошлых транзакций, т.е. Дается история транзакций, алгоритм XGBoost может помочь изучить функцию, которая сопоставляет входные данные транзакции с вероятностью мошенничества транзакции.
Регресс
В отличие от классификации, в которой входные данные отображаются на дискретное количество классов, при регрессии выходными являются числа. Хорошо используемым примером проблемы регрессии является модель прогнозирования цен на жилье. Здесь представлены исторические данные домов с их продажной ценой и множеством других ключевых данных, которые с помощью алгоритма XGBoost функция может научиться предсказывать продажную цену пожертвования через предоставленные метаданные нового дома.
Рейтинг
Ранжирование - это процесс определения важности документа в порядке релевантности. XGBoost очень хорошо справляется с проблемами, связанными с ранжированием. Одной из хороших аналогий может быть ранжирование различных видео на YouTube. Данные результатов поиска, времени просмотра и кликов по рекомендации могут помочь изучить и применить XGBoost для обучения. Это создаст модели различных типов видео с оценками релевантности в зависимости от пользователя. Это поможет создать механизм рекомендаций для видео по вкусу пользователя. TikTok и Spotify используют похожий подход. Более того, даже сайты электронной коммерции, такие как Amazon и Ebday, широко используют ранжирование в своей основе.
Библиотеку XGBoost можно легко использовать как в локальном движке, так и в облаке с помощью таких сервисов, как Amazon SageMaker. Давайте научимся устанавливать XGBoost в Anaconda.
Анаконда
Anaconda - это дистрибутив для научных вычислений, который представляет собой простой в установке бесплатный менеджер пакетов и менеджер среды с огромной коллекцией из более чем 720 пакетов с открытым исходным кодом, предлагающих бесплатную поддержку сообществом языков программирования R и Python, которые поддерживают Windows, Linux и Mac. ОС, а также поставляется с Jupyter Notebook.
Как установить XGBoost в Anaconda
Прежде всего, давайте установим Ananconda Environment в нашу систему с официального сайта. Существует бесплатная индивидуальная версия, которую можно использовать в учебных целях.
После установки откройте терминал Anaconda Prompt и проверьте, есть ли обновления.
conda update –all
После этого вы можете использовать следующую команду для установки пакета xgboost для python в среде anaconda.
conda install -c anaconda py-xgboost
Теперь, когда XGBoost настроен, вы можете использовать модули из xgboost, вызывая их с import в своем Jupyter Notebook. Этот пакет может поддерживать языки программирования Python, R, C ++, Scala и Java и может работать на одной машине, а также на Spark, Hadoop, DataFlow и Flink.
Использование XGBoost в Amazon SageMaker
Amazon SageMaker позволяет специалистам по обработке данных и инженерам по машинному обучению получать доступ к алгоритмам XGBoost в основном двумя способами: одним из них как встроенными алгоритмами, а другим - как фреймворком. При использовании XGBoost в качестве алгоритма существует большая гибкость по сравнению с использованием встроенных алгоритмов, и, следовательно, можно также получить доступ к еще более сложным сценариям, например, перекрестная проверка в k-кратном размере, поскольку сценарии обучения также могут быть настроены.
Использование XGBoost в качестве фреймворка
XGBoost можно использовать в качестве фреймворка, а настраиваемые обучающие сценарии можно легко запускать. В следующем примере показано, как SageMaker Python SDK предоставляет XGBoost API в качестве платформы, аналогичной той, что предоставляется для PyTorch и TensorFlow.
import boto3 import sagemaker from sagemaker.xgboost.estimator import XGBoost from sagemaker.session import s3_input, Session
#initializing the hyperparameters
hyperparameters = {
"max_depth":"5", "eta":"0.2", "gamma":"4", "min_child_weight":"6", "verbosity":"1", "objective":"reg:linear", "subsample":"0.7", "num_round":"50"}
#output path is set to the s3 bucketwhere the trained model will be saved bucket = sagemaker.Session().default_bucket() prefix = 'DEMO-xgboost-as-a-framework' output_path = 's3://{}/{}/{}/output'.format(bucket, prefix, 'abalone-xgb-framework')
#construct a SageMaker XGBoost estimator #entry_point to the xgboost training script is specified
estimator = XGBoost(entry_point = "your_xgboost_abalone_script.py",
framework_version='1.2-2', hyperparameters=hyperparameters, role=sagemaker.get_execution_role(), instance_count=1, instance_type='ml.m5.2xlarge', output_path=output_path)
#paths and data type and defined to the training and validation datasets
content_type = "libsvm" train_input = s3_input("s3://{}/{}/{}/".format(bucket, prefix, 'train'), content_type=content_type) validation_input = s3_input("s3://{}/{}/{}/".format(bucket, prefix, 'validation'), content_type=content_type)
# execution of the XGBoost training job estimator.fit({'train': train_input, 'validation': validation_input})
Преимущества внедрения XGBoost через Amazon SageMaker
Внедрение XGBoost через Amazon SageMaker дает множество преимуществ. Узнав об этих ключевых преимуществах, любой наверняка обнаружит прибыльные перспективы использования XGBoost через SageMaker.
Масштабируемость и распределенная система
С помощью XGBoost в Amazon SageMaker можно обучить огромный объем данных на множестве машин. Это так же просто, как установить количество машин и размер, до которого нужно масштабировать. Обо всем остальном, касающемся распространения и масштабируемости, позаботится Amazon SageMaker.
Фрагментация
Данные могут быть разделены в корзине Amazon S3 для обучения, что позволяет загружать наборы данных в разделе на отдельные узлы, в отличие от загрузки всех наборов данных на один узел, что может создать узкое место. Кроме того, время загрузки набора данных также сокращается, что способствует ускорению процессов обучения.
A / B тестирование
Многочисленные модели XGBoost могут запускаться одновременно, каждая с разным весом для вывода. Это A / B-тестирование, изначально поддерживаемое Amazon SageMaker, может помочь клиентам определить лучшие модели из множества протестированных для их использования.
Читать статью полностью: