Случайный лес в Амазонке AWS Sagemaker? - PullRequest
1 голос
/ 24 июня 2019

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

Ответы [ 2 ]

3 голосов
/ 25 июня 2019

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

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

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

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

0 голосов
/ 24 июня 2019

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

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

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


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

Случайный лес (RCF) Jupyter noetbook ex: https://github.com/awslabs/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/random_cut_forest/random_cut_forest.ipynb

...