ランダムカットフォレスト (RCF) アルゴリズム - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ランダムカットフォレスト (RCF) アルゴリズム

Amazon SageMaker Random Cut Forest (RCF) は、データセット内の異常なデータポイントを検出するための教師なしアルゴリズムです。これらは、その他の高度に構造化された、またはパターン化されたデータとは異なる観測値です。異常は、時系列データにおける突然のスパイク、周期性の中断、分類できないデータポイントとして現れる場合があります。プロットで見ると「通常の」データと容易に区別できることが多いため、簡単に説明できます。「通常の」データは多くの場合に単純なモデルで記述できるため、これらの異常をデータセットに含めると、機械学習タスクの複雑さが大幅に増加する可能性があります。

各データポイントで、 は異常スコアRCFを関連付けます。低スコア値であれば、データポイントは「通常」とみなされています。高い値は、データ内に異常があることを示します。「低」および「高」の定義はアプリケーションによって異なりますが、一般的な方法としては、平均スコアから 3 標準偏差を超えるスコアであれば、異常とみなされます。

トラフィック量分析やサウンドボリュームスパイク検出などの 1 次元時系列データには異常検出アルゴリズムの多くのアプリケーションがありますが、 RCFは任意の次元入力で動作するように設計されています。Amazon SageMaker RCF は、機能の数、データセットのサイズ、インスタンスの数に関して適切にスケーリングできます。

RCF アルゴリズムの入出力インターフェイス

Amazon SageMaker Random Cut Forest は、 trainおよび test データチャネルをサポートしています。オプションのテストチャネルは、正確性、精度、リコール、およびラベル付けされたデータの F1 スコアメトリクスを計算するために使用されます。トレーニングとテストデータコンテンツタイプは、application/x-recordio-protobuf または text/csv の形式です。テストデータについて、text/csv 形式を使用する場合に、コンテンツを text/csv;label_size=1 として指定する必要があります。各行の最初の列は異常ラベルを表します。異常データポイントの場合は「1」、通常のデータポイントの場合は「0」です。ファイルモードまたはパイプモードのいずれかを使用して、 recordIO-wrapped-protobufまたは としてフォーマットされたデータでRCFモデルをトレーニングできます。 CSV

トレーニングチャネルは S3DataDistributionType=ShardedByS3Key のみがサポートされ、テストチャネルでは S3DataDistributionType=FullyReplicated のみがサポートされます。次の例では、Amazon Python を使用してトレーニングチャネルの S3 ディストリビューションタイプを指定します。 SageMaker SDK

注記

Python v2 sagemaker.inputs.TrainingInputでは、sagemaker.inputs.s3_inputメソッドの名前が に変更されました。 SageMaker 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.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})

実行ロールに関する一般的なエラーを回避するには、必要な実行ロール AmazonSageMakerFullAccessAmazonEC2ContainerRegistryFullAccess があることを確認します。イメージに存在しない一般的なエラーや、そのアクセス許可が正しくないようにするには、ECRイメージがトレーニングインスタンスに割り当てられたディスク容量よりも大きくないことを確認してください。これを回避するには、十分なディスク容量があるインスタンスでトレーニングジョブを実行します。さらに、ECRイメージが別の AWS アカウントの Elastic Container Service (ECS) リポジトリのもので、アクセスを許可するリポジトリのアクセス許可を設定していない場合、エラーが発生します。ECR リポジトリポリシーステートメントの設定の詳細については、リポジトリのアクセス許可を参照してください。

S3 データソース属性のカスタマイズの詳細については、「S3DataSource」を参照してください。最後に、複数インスタンスのトレーニングの利点を活かすために、トレーニングデータは少なくともインスタンスと同じ数のファイルに分割されている必要があります。

推論の場合、 は application/x-recordio-protobuf、、text/csvおよびapplication/json入力データコンテンツタイプRCFをサポートします。詳細については、組み込みアルゴリズムの共通データ形式のドキュメントを参照してください。RCF 推論は application/x-recordio-protobufまたは application/json 形式の出力を返します。これらの出力データの各レコードには、各入力データポイントの対応する異常スコアが含まれています。詳細については、一般的なデータ形式 - 推論を参照してください。

入出力ファイル形式の詳細については、RCF レスポンス形式 (推論の場合) およびRCF サンプルノートブックを参照してください。

RCF アルゴリズムのインスタンスレコメンデーション

トレーニングには、ml.m4ml.c4、および ml.c5 インスタンスファミリーをお勧めします。推論には、最大限のパフォーマンスと使用時間当たりのコスト最小化のために、特に ml.c5.xl インスタンスタイプを使用することをお勧めします。アルゴリズムは技術的にはGPUインスタンスタイプで実行できますが、GPUハードウェアは活用されません。

RCF サンプルノートブック

RCF モデルをトレーニングして推論を実行する方法の例については、「ランダム SageMaker カットフォレストの概要」ノートブックを参照してください。で例を実行するために使用できる Jupyter Notebook インスタンスを作成してアクセスする手順については SageMaker、「」を参照してくださいAmazon SageMaker Notebook インスタンス。ノートブックインスタンスを作成して開いたら、SageMaker 「例」タブを選択すると、すべての SageMaker サンプルのリストが表示されます。ノートブックを開くには、その [Use (使用)] タブをクリックして [Create copy (コピーを作成)] を選択します。

RCF アルゴリズムの使用に関するブログ記事については、「異常検出に組み込みの Amazon SageMaker Random Cut Forest アルゴリズムを使用する」を参照してください。