本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
随机森林砍伐 (RCF) 算法
亚马逊 SageMaker 随机森林砍伐 (RCF) 是一种自主算法,用于检测数据集中的异常数据点。这些数据点是与良好结构或模式化数据存在偏差的观察数据。异常可以表现为时间序列数据中意外峰值、周期性中断或无法分类的数据点。它们很容易描述,表现为在图中查看时,它们通常很容易与“常规”数据区分。数据集中包括这些异常会显著增加机器学习任务的复杂性,因为“常规”数据通常使用简单模型描述。
对于每个数据点,RCF 关联一个异常分数。低分数值表明该数据点被视为“正常”。高分数值表明数据中存在异常。“低”和“高”的定义取决于应用,但常见做法建议将落在平均分数的三个标准偏差之外的分数视为异常。
异常检测算法在一维时间序列数据上有很多应用,例如流量分析或音量峰值检测,而 RCF 设计用于任意维度的输入。亚马逊 SageMaker RCF 可以很好地随着特征数、数据集大小和实例数缩放。
RCF 算法的输入/输出接口
亚马逊 SageMaker 随机森林砍伐支持train和test数据通道。可选测试通道用于计算所标记数据的准确度、精度、召回率和 F1 分数指标。训练和测试数据内容类型可为 application/x-recordio-protobuf 或 text/csv 格式。对于测试数据,在使用文本/csv 格式时,内容必须指定为 text/csv;label_size=1,其中每行的第一列表示异常标签:1 表示异常数据点,0 表示普通数据点。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobuf 或 CSV 的数据训练 RCF 模型。
火车频道只支持S3DataDistributionType=ShardedByS3Key而且测试频道只支持S3DataDistributionType=FullyReplicated. 以下示例使用亚马逊 SageMaker Python 开发工具包
这些区域有:sagemaker.inputs.s3_input方法已重命名为sagemaker.inputs.TrainingInput在SageMaker Python 开发工具包 v2
import sagemaker # specify Random Cut Forest training job information and hyperparameters rcf = sagemaker.estimator.Estimator(...) # explicitly specify "ShardedByS3Key" distribution type train_data = sagemaker.inputs.TrainingInput( 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})
为避免执行角色方面的常见错误,请确保您拥有所需的执行角色,AmazonSageMakerFullAccess和AmazonEC2ContainerRegistryFullAccess. 为避免映像不存在的常见错误或其权限不正确,请确保 ECR 映像不大于训练实例上分配的磁盘空间。为避免这种情况,请在具有足够磁盘空间的实例上运行训练作业。此外,如果你的 ECR 图像来自不同Amazon账户的弹性容器服务 (ECS) 存储库,并且您没有设置存储库权限来授予访问权限,这将导致错误。请参阅ECR 存储库权限了解有关设置存储库策略声明的更多信息。
请参阅S3DataSource有关自定义 S3 数据源属性的更多信息。最后,为了利用多实例训练,训练数据必须至少分区为与实例相同数量的文件。
对于推理,RCF 支持 application/x-recordio-protobuf、text/csv 和 application/json 输入数据内容类型。有关更多信息,请参阅内置算法的常见数据格式文档。RCF 推理返回 application/x-recordio-protobuf 或 application/json 格式的输出。这些输出数据中的每个记录包含各个输入数据点对应的异常分数。有关更多信息,请参阅常见数据格式 -- 推理。
有关输入和输出文件格式的更多信息,请参阅RCF 响应格式(对于推理)和RCF 示例笔记本。
RCF 算法的实例建议
对于训练,我们建议使用 ml.m4、ml.c4 和 ml.c5 实例系列。对于推理,我们特别建议使用 ml.c5.xl 实例类型,用于实现最佳性能以及最低的每小时使用成本。尽管在技术上,算法可以在 GPU 实例类型上运行,但它没有充分利用 GPU 硬件。
RCF 示例笔记本
有关如何训练 RCF 模型并使用该模型执行推理的示例,请参阅简介 SageMaker 随机森林砍伐