Randomforest в amazon aws sagemaker?

Я хочу воссоздать случайную модель леса, созданную локально, и развернуть ее через sagemaker. Модель очень простая, но для сравнения я хотел бы использовать ее в sagemaker. Я не вижу случайного леса среди встроенных алгоритмов sagemaker (что кажется странным) - это мой единственный вариант пойти по пути развертывание моей собственной модели? Все еще изучаю контейнеры, и, похоже, много работы для чего-то, что представляет собой простой локальный вызов randomforestclassifier (). Я просто хочу сравнить стандартную модель randomforest и показать, что она работает так же при развертывании через AWS sagemaker.


person L Xandor    schedule 24.06.2019    source источник
comment
Демо-версия случайного леса только что была добавлена ​​в репозиторий демо-версии SageMaker github.com/awslabs/amazon-sagemaker-examples/blob/master/   -  person Olivier Cruchant    schedule 13.09.2019


Ответы (2)


редактировать 03/30/2020: добавить ссылку в поле Демонстрация случайного леса SageMaker Sklearn


в SageMaker у вас есть 3 варианта написания научного кода:

  • Встроенные алгоритмы
  • Предварительно написанные контейнеры с открытым исходным кодом (доступны для sklearn, tensorflow, pytorch, mxnet, chainer. Keras можно записывать в контейнерах tensorflow и mxnet)
  • Принесите свой контейнер (например, для R)

На момент написания этого сообщения во встроенной библиотеке не было классификатора случайного леса или регрессора. Существует алгоритм под названием Random Cut Forest во встроенной библиотеке, но это неконтролируемый алгоритм для обнаружения аномалий, вариант использования, отличный от scikit-learn random forest, используемый в контролируемом режиме (также ответили в StackOverflow здесь). Но легко использовать заранее написанный контейнер scikit-learn с открытым исходным кодом для реализации своего собственного. Здесь есть , с обучением оркестровке из высокоуровневого SDK и boto3. Вы также можете использовать этот другой общедоступная демонстрация sklearn-on-sagemaker и измените модель. Преимущество предварительно написанных контейнеров перед опцией «Принесите свой собственный» состоит в том, что файл докеров уже написан, как и стек веб-обслуживания.

Что касается вашего удивления, что Random Forest не представлен во встроенных алгоритмах, библиотека и ее 18 алгоритмов уже охватывают богатый набор сценариев использования. Например, для контролируемого обучения по структурированным данным (обычный вариант использования для случайного леса), если вы хотите придерживаться встроенных функций, в зависимости от ваших приоритетов (точность, задержка вывода, масштаб обучения, затраты ...), вы может использовать SageMaker XGBoost (XGBoost выигрывал множество соревнований по майнингу данных - каждая команда-победитель в топ-10 KDDcup 2015 использовала XGBoost согласно статье XGBoost - и хорошо масштабируется) и линейного ученика, который очень быстро выводит информацию и может быть обучен в масштабе мини-пакетным способом с использованием графических процессоров. Факторизационные машины (линейное + взаимодействие 2-й степени с весами встраивания столбцов точечных продуктов) и SageMaker kNN - другие варианты. Кроме того, все не застыло в камне, и список встроенных алгоритмов быстро улучшается.

person Olivier Cruchant    schedule 25.06.2019
comment
и демонстрация случайного леса была только что добавлена ​​в репозиторий демонстрации SageMaker github.com/awslabs/amazon-sagemaker-examples/blob/master/ - person Olivier Cruchant; 13.09.2019

RandomForestClassifier не поддерживается SageMaker "из коробки", но XGBoost (с усилением градиента) деревья), а также decisionTreeClassifier из scikit-learn поддерживаются. Вы можете получить доступ к decisionTreeClassifier() scikit-learn прямо из SageMaker SDK.

Вот блокнот, демонстрирующий использование decisionTreeClassifier из встроенный scikit-learn от SageMaker.

Развертывание собственной пользовательской модели через файл Docker, безусловно, также возможно (и поначалу может показаться сложным, но не так уж и плохо), но я согласен с тем, что это не будет идеальным вариантом для простого алгоритма, который уже включен в SageMaker. :)


Изменить: смешал случайный лес и случайный лес в исходном ответе, как обсуждалось в комментарии. Документы по алгоритму Random Cut Forest для SageMaker доступны здесь: https://docs.aws.amazon.com/sagemaker/latest/dg/randomcutforest.html

Random Cut Forest (RCF) Jupyter noetbook ex:

person Nick Walsh    schedule 24.06.2019
comment
Упс - вы правы, мои извинения. Random Cut Forest предназначен для неконтролируемого обнаружения аномалий, тогда как Random Forest - это совокупность деревьев решений для классификации / регрессии. Вы настроены на случайный лес или хотите использовать xgboost (который является встроенным алгоритмом SageMaker) для деревьев с градиентным усилением? docs.aws.amazon.com/sagemaker/latest/dg/xgboost. html - person Nick Walsh; 24.06.2019
comment
@LXandor добавил дополнительные параметры для xgboost и decisionTreeClassifier, оба из которых являются встроенными в SageMaker. - person Nick Walsh; 24.06.2019
comment
В конечном итоге я буду использовать xgboost, но я хотел использовать randomforest в качестве базовой линии. Итак, единственный способ получить randomforest - это пройти процесс файла докеров пользовательской модели? Кажется странным, RF - такой популярный алогритм - person L Xandor; 24.06.2019