随机森林砍伐 (RCF) 算法 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

随机森林砍伐 (RCF) 算法

Amazon SageMaker 随机森林砍伐 (RCF) 是一种自主算法,用于检测数据集中的异常数据点。这些数据点是与良好结构或模式化数据存在偏差的观察数据。异常可以表现为时间序列数据中意外峰值、周期性中断或无法分类的数据点。它们很容易描述,表现为在图中查看时,它们通常很容易与“常规”数据区分。数据集中包括这些异常会显著增加机器学习任务的复杂性,因为“常规”数据通常使用简单模型描述。

对于每个数据点,RCF 关联一个异常分数。低分数值表明该数据点被视为“正常”。高分数值表明数据中存在异常。“低”和“高”的定义取决于应用,但常见做法建议将落在平均分数的三个标准偏差之外的分数视为异常。

异常检测算法在一维时间序列数据上有很多应用,例如流量分析或音量峰值检测,而 RCF 设计用于任意维度的输入。Amazon SageMaker RCF 可以很好地随着功能数、数据集大小和实例数缩放。

RCF 算法的输入/输出接口

Amazon SageMaker 随机森林砍伐支持traintest数据频道。可选测试通道用于计算所标记数据的准确度、精度、召回率和 F1 分数指标。训练和测试数据内容类型可为 application/x-recordio-protobuftext/csv 格式。对于测试数据,在使用文本/csv 格式时,内容必须指定为 text/csv;label_size=1,其中每行的第一列表示异常标签:1 表示异常数据点,0 表示普通数据点。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobufCSV 的数据训练 RCF 模型。

另请注意,训练通道仅支持 S3DataDistributionType=ShardedByS3Key,测试通道仅支持 S3DataDistributionType=FullyReplicated。可以使用Amazon SageMaker Python 开发工具包如下所示:

import sagemaker # specify Random Cut Forest training job information and hyperparameters rcf = sagemaker.estimator.Estimator(...) # explicitly specify "ShardedByS3Key" distribution type train_data = sagemaker.inputs.s3_input( s3_data=s3_training_data_location, content_type='text/csv;label_size=0', distribution='ShardedByS3Key') # run the training job on input data stored in S3 rcf.fit({'train': train_data})

要避免执行角色周围的常见错误,请确保您具有所需的执行角色AmazonSageMakerFullAccessAmazonEC2ContainerRegistryFullAccess. 要避免映像不存在或其权限不正确的常见错误,请确保 ECR 映像不大于训练实例上分配的磁盘空间。为避免这种情况,请在具有足够磁盘空间的实例上运行您的培训作业。此外,如果 ECR 映像来自不同的Amazon帐户的弹性容器服务 (ECS) 存储库,并且您没有将存储库权限设置为授予访问权限,这将导致错误。请参阅ECR 存储库权限,了解有关设置存储库策略语句的详细信息。

有关自定义 S3 数据源属性的更多信息,请参阅 S3DataSource。最后,为了利用多实例训练,训练数据必须至少分区为与实例相同数量的文件。

对于推理,RCF 支持 application/x-recordio-protobuftext/csvapplication/json 输入数据内容类型。有关更多信息,请参阅内置算法的常见数据格式文档。RCF 推理返回 application/x-recordio-protobufapplication/json 格式的输出。这些输出数据中的每个记录包含各个输入数据点对应的异常分数。有关更多信息,请参阅常见数据格式 -- 推理

有关输入和输出文件格式的更多信息,请参阅RCF 响应格式(对于推理)和RCF 示例笔记本

RCF 算法的实例建议

对于训练,我们建议使用 ml.m4ml.c4ml.c5 实例系列。对于推理,我们特别建议使用 ml.c5.xl 实例类型,用于实现最佳性能以及最低的每小时使用成本。尽管在技术上,算法可以在 GPU 实例类型上运行,但它没有充分利用 GPU 硬件。

RCF 示例笔记本

有关如何训练 RCF 模型并使用该模型进行推理的示例,请参阅SageMaker 随机切割森林简介笔记本。有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例. 在您创建笔记本实例并打开之后,请选择SageMaker End的示例选项卡以查看所有 SageMaker 示例的列表。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本)