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

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

随机森林砍伐 (RCF) 算法

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

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

异常检测算法在一维时间序列数据上有许多应用,例如流量分析或音量峰值检测,而 RCF 设计用于任意维度的输入。Amazon SageMakerRCF 在特征数、数据集大小和实例数方面可以很好地扩展。

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。 可以使用 指定 S3 分配类型Amazon SageMaker Python SDK,如下所示:

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 映像来自其他 AWS 账户的 Elastic Container Service (ECS) 存储库,并且您未设置用于授予访问权限的存储库权限,则这会导致错误。有关设置存储库策略语句的更多信息,请参阅 ECR 存储库权限。

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

对于推理,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 Examples 选项卡以查看所有SageMaker示例的列表。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本).