Amazon SageMaker
開発者ガイド

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

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

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

交通量解析や音量スパイク検出など、異常検出アルゴリズムは 1 次元時系列データに広く応用されます。これに対し RCF は、任意の次元入力で機能するように設計されています。Amazon SageMaker RCF は、機能数、データセットのサイズ、インスタンス数に関して適切にスケーリングされます。

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

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

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

import sagemaker # specify Random Cut Forest training job information and hyperparameters rcf = sagemaker.estimator.Estimator(...) # explicitly specify "SharededByS3Key" distribution type train_data = sagemaker.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})

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

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

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

RCF アルゴリズムのインスタンスに関する推奨事項

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

RCF サンプルノートブック

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