Amazon SageMaker
開発者ガイド

ランダムカットフォレスト

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

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

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

入出力インターフェイス

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

また、トレーニングチャネルでは 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 推論は、appplication/x-recordio-protobuf または application/json フォーマットされた出力を返します。これらの出力データの各レコードには、各入力データポイントの対応する異常スコアが含まれています。詳細については、「一般的なデータ形式 - 推論」を参照してください。

コンテンツタイプが異なるトレーニングと推論のデモンストレーションについては、「サンプルノートブック」を参照してください。

インスタンスの推奨事項

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