

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

# ランダムカットフォレスト (RCF) アルゴリズム
<a name="randomcutforest"></a>

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

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

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

**Topics**
+ [RCF アルゴリズムの入出力インターフェイス](#rcf-input_output)
+ [RCF アルゴリズムのインスタンスに関する推奨事項](#rcf-instance-recommend)
+ [RCF サンプルノートブック](#rcf-sample-notebooks)
+ [RCF の仕組み](rcf_how-it-works.md)
+ [RCF ハイパーパラメータ](rcf_hyperparameters.md)
+ [RCF モデルを調整する](random-cut-forest-tuning.md)
+ [RCF のレスポンス形式](rcf-in-formats.md)

## RCF アルゴリズムの入出力インターフェイス
<a name="rcf-input_output"></a>

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

トレーニングチャネルは `S3DataDistributionType=ShardedByS3Key` のみがサポートされ、テストチャネルでは `S3DataDistributionType=FullyReplicated` のみがサポートされます。次の例では、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable/v2.html) を使用してトレーニングチャネルの S3 ディストリビューションタイプを指定しています。

**注記**  
`sagemaker.inputs.s3_input` メソッドは、[SageMaker Python SDK v2](https://sagemaker.readthedocs.io/en/stable/v2.html#s3-input) で `sagemaker.inputs.TrainingInput` に名前が変更されました。

```
  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 イメージが別の AWS アカウントの Elastic Container Service (ECS) リポジトリのもので、アクセス許可を付与するリポジトリアクセス許可を設定していない場合、エラーが発生します。リポジトリポリシーステートメントの設定の詳細については、「[ECR repository permissions」(ECR リポジトリのアクセス許可](https://docs.aws.amazon.com/AmazonECR/latest/userguide/set-repository-policy.html)) を参照してください。

S3 データソース属性のカスタマイズの詳細については、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html)」を参照してください。最後に、複数インスタンスのトレーニングの利点を活かすために、トレーニングデータは少なくともインスタンスと同じ数のファイルに分割されている必要があります。

RCF では、推論のために `application/x-recordio-protobuf`、`text/csv`、および `application/json` 入力データコンテンツタイプをサポートしています。詳細については、[組み込みアルゴリズムのパラメータ](common-info-all-im-models.md)のドキュメントを参照してください。RCF 推論は、`application/x-recordio-protobuf` または `application/json` フォーマットされた出力を返します。これらの出力データの各レコードには、各入力データポイントの対応する異常スコアが含まれています。詳細については、[一般的なデータ形式 - 推論](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)を参照してください。

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

## RCF アルゴリズムのインスタンスに関する推奨事項
<a name="rcf-instance-recommend"></a>

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

## RCF サンプルノートブック
<a name="rcf-sample-notebooks"></a>

RCF モデルをトレーニングし、それを使用して推論を実行する方法の例については、「[An Introduction to SageMaker AI Random Cut Forests](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/random_cut_forest/random_cut_forest.html)」ノートブックを参照してください。SageMaker AI でサンプルを実行するために使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法の詳細については、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。ノートブックインスタンスを作成して開いたら、**[SageMaker AI サンプル]** タブを選択して、すべての SageMaker AI サンプルのリストを表示します。ノートブックを開くには、その [**Use (使用)**] タブをクリックして [**Create copy (コピーを作成)**] を選択します。

RCF アルゴリズムの使用に関するブログ記事については、「[Use the built-in Amazon SageMaker AI Random Cut Forest algorithm for anomaly detection](https://aws.amazon.com/blogs/machine-learning/use-the-built-in-amazon-sagemaker-random-cut-forest-algorithm-for-anomaly-detection/)」を参照してください。