亚马逊 aws sagemaker 中的 Randomforest?

L X*_*dor 4 containers amazon-web-services random-forest docker amazon-sagemaker

我希望重新创建一个本地构建的随机森林模型,并通过 sagemaker 部署它。该模型非常基础,但为了进行比较,我想在 sagemaker 中使用相同的模型。我在 sagemaker 的内置算法中没有看到 randomforest(这看起来很奇怪) - 是我唯一选择去部署我自己的自定义模型的方法吗?仍在学习容器,对于在本地只是一个简单的 randomforestclassifier() 调用的东西,似乎需要做很多工作。我只想针对开箱即用的随机森林模型进行基准测试,并证明它在通过 AWS sagemaker 部署时的工作方式相同。

Oli*_*ant 8

2020 年 3 月 30 日编辑:添加指向SageMaker Sklearn 随机森林演示的链接


在 SageMaker 中,您有 3 个选项来编写科学代码:

  • 内置算法
  • 开源预写容器(可用于 sklearn、tensorflow、pytorch、mxnet、chainer。Keras 可以写在 tensorflow 和 mxnet 容器中)
  • 带上你自己的容器(例如 R)

在撰写本文时,内置库中没有随机森林分类器或回归器。内置库中有一种称为Random Cut Forest的算法,但它是一种用于异常检测的无监督算法,与以监督方式使用的scikit-learn 随机森林不同的用例(也在StackOverflow 中回答)。但是使用开源的预先编写的 scikit-learn 容器来实现您自己的容器很容易。有一个演示展示了如何在 SageMaker 中使用 Sklearn 的随机森林,以及来自高级 SDK 和boto3. 您还可以使用其他公共 sklearn-on-sagemaker 演示并更改模型。与“自带”选项相比,预先编写的容器的一个好处是 dockerfile 已经编写,Web 服务堆栈也已编写。

关于随机森林没有出现在内置算法中的惊讶,该库及其 18 个算法已经涵盖了丰富的用例集。例如,对于结构化数据的监督学习(随机森林的常见用例),如果您想坚持使用内置函数,则取决于您的优先级(准确性、推理延迟、训练规模、成本...)可以使用 SageMaker XGBoost(XGBoost 已经赢得了大量的数据挖掘比赛 -根据 XGBoost 论文,KDDcup 2015 前 10 名中的每个获胜团队都使用 XGBoost - 并且扩展性很好)和线性学习器,推理速度非常快并且可以训练在 GPU 上以小批量方式大规模地进行。因式分解机(线性 + 2 度交互,权重为列嵌入点积)和SageMaker kNN是其他选项。此外,事情并非一成不变,内置算法列表正在快速改进。