

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Algoritmo Random Cut Forest (RCF)
<a name="randomcutforest"></a>

Amazon SageMaker AI Random Cut Forest (RCF) è un algoritmo non supervisionato per il rilevamento di punti dati anomali all'interno di un set di dati. Queste sono osservazioni che divergono da dati altrimenti ben strutturati o con motivi. Possono manifestarsi anomalie come picchi non previsti in dati delle serie temporali, interruzioni nelle periodicità o punti dati non classificabili. Sono facili da descrivere in quanto, se visualizzate in un tracciato, sono spesso facilmente distinguibili dai dati "normali". L'inclusione di queste anomalie in un set dati può aumentare drasticamente la complessità di un'attività di machine learning, poiché i dati "normali" spesso possono essere descritti con un modello semplice.

L'algoritmo RCF associa un punteggio di anomalia a ogni punto dati. Valori bassi indicano che il punto dati è considerato "normale". Valori elevati indicano la presenza di un'anomalia nei dati. Le definizioni di "basso" e di "elevato" dipendono dall'applicazione, ma è pratica comune ritenere che i punteggi oltre tre deviazioni standard dal punteggio medio siano considerati anomali.

Sebbene vi siano molte applicazioni di algoritmi di rilevamento di anomalie su dati di serie temporali monodimensionali, come l'analisi del volume di traffico o il rilevamento di picchi di volume audio, RCF è stato progettato per funzionare con input dimensionali arbitrari. Amazon SageMaker AI RCF si adatta bene al numero di funzionalità, alla dimensione del set di dati e al numero di istanze.

**Topics**
+ [Input/Output Interfaccia per l'algoritmo RCF](#rcf-input_output)
+ [Raccomandazione istanza per l'algoritmo RCF](#rcf-instance-recommend)
+ [Notebook di esempio RCF](#rcf-sample-notebooks)
+ [Come funziona RCF](rcf_how-it-works.md)
+ [Iperparametri RCF](rcf_hyperparameters.md)
+ [Ottimizzazione di un modello RCF](random-cut-forest-tuning.md)
+ [Formati della risposta RCF](rcf-in-formats.md)

## Input/Output Interfaccia per l'algoritmo RCF
<a name="rcf-input_output"></a>

Amazon SageMaker AI Random Cut Forest supporta i canali di `test` dati `train` e. Il canale di test opzionale viene utilizzato per calcolare l'accuratezza, la precisione, il richiamo e le F1-score metriche sui dati etichettati. L’addestramento e il test dei tipi di contenuto di dati possono rilevare i formati `application/x-recordio-protobuf` e `text/csv`. Per i dati di test, quando si utilizza il text/csv formato, il contenuto deve essere specificato come text/csv; label\_size=1 dove la prima colonna di ogni riga rappresenta l'etichetta di anomalia: «1" per un punto dati anomalo e «0" per un punto dati normale. Puoi utilizzare la modalità file o la modalità pipe per addestrare i modelli RCF sui dati formattati come `recordIO-wrapped-protobuf` o `CSV`.

Il canale di addestramento supporta solo `S3DataDistributionType=ShardedByS3Key` e il canale di test supporta solo `S3DataDistributionType=FullyReplicated`. L'esempio seguente specifica il tipo di distribuzione S3 per il canale del treno utilizzando l'SDK Amazon Python. [ SageMaker ](https://sagemaker.readthedocs.io/en/stable/)

**Nota**  
Il `sagemaker.inputs.s3_input` metodo è sostituito dalle `S3DataSource` forme `Channel` and in SageMaker Python SDK v3. Il tipo di distribuzione è configurato all'interno di a. `S3DataSource` `Channel`

```
  import sagemaker
  from sagemaker.train import ModelTrainer
  from sagemaker.core.shapes import Channel, DataSource, S3DataSource
  from sagemaker.core.helper.session_helper import Session, get_execution_role
    
  # specify Random Cut Forest training job information and hyperparameters
  rcf = ModelTrainer(...)
    
  # specify training data input channel with ShardedByS3Key distribution
  train_data = Channel(
      channel_name="training",
      data_source=DataSource(
          s3_data_source=S3DataSource(
              s3_data_type="S3Prefix",
              s3_uri=s3_training_data_location,
              s3_data_distribution_type="ShardedByS3Key"
          )
      )
  )
    
  # run the training job on input data stored in S3
  rcf.train(input_data_config=[train_data])
```

Per evitare errori comuni relativi ai ruoli di esecuzione, assicurati di disporre dei ruoli di esecuzione richiesti, `AmazonSageMakerFullAccess` e `AmazonEC2ContainerRegistryFullAccess`. Per evitare errori comuni relativi all'inesistenza dell'immagine o alle relative autorizzazioni, assicurati che l'immagine ECR non sia più grande dello spazio su disco allocato sull'istanza di addestramento. Per evitare ciò, esegui il processo di addestramento su un'istanza con spazio su disco sufficiente. Inoltre, se l'immagine ECR proviene dal repository Elastic Container Service (ECS) di un altro AWS account e non si impostano le autorizzazioni del repository per concedere l'accesso, si verificherà un errore. Per ulteriori informazioni sull’impostazione di una dichiarazione di policy per il repository, consulta [Autorizzazioni per il repository ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/set-repository-policy.html).

Per ulteriori informazioni sulla personalizzazione degli attributi dell'origine dati S3, consulta [`S3DataSource`](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_S3DataSource.html). Infine, per trarre vantaggio dall’addestramento di più istanze, i dati di addestramento devono essere partizionati in almeno lo stesso numero di file delle istanze.

Per inferenza, l'algoritmo RCF supporta i tipi di contenuti di dati di input `application/x-recordio-protobuf`, `text/csv` e `application/json`. Per ulteriori informazioni, consulta la documentazione [Parametri per gli algoritmi Built-in](common-info-all-im-models.md). L'inferenza RCF restituisce l'output formattato `application/x-recordio-protobuf` o `application/json`. Ogni record in questi dati di output contiene i punteggi di anomalia corrispondenti per ogni punto dati di input. Per ulteriori informazioni, consulta [Formati di dati comuni -- Inferenza](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html).

Per ulteriori informazioni sui formati di file di input e output, consulta [Formati della risposta RCF](rcf-in-formats.md) per l'inferenza e i [Notebook di esempio RCF](#rcf-sample-notebooks).

## Raccomandazione istanza per l'algoritmo RCF
<a name="rcf-instance-recommend"></a>

Per l’addestramento, consigliamo le famiglie di istanze `ml.m4`, `ml.c4` e `ml.c5`. Per l'inferenza, consigliamo l'uso di un tipo di istanza `ml.c5.xl` in particolare, per ottenere prestazioni ottimali nonché per ridurre al minimo il costo per ogni ora di utilizzo. Sebbene l'algoritmo potrebbe tecnicamente essere eseguito su tipi di istanze GPU, non trae vantaggio dall'hardware della GPU.

## Notebook di esempio RCF
<a name="rcf-sample-notebooks"></a>

Per un esempio di come addestrare un modello RCF ed eseguire inferenze con esso, consulta il taccuino An Introduction to AI Random Cut [ Forests. SageMaker ](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/random_cut_forest/random_cut_forest.html) Per istruzioni su come creare e accedere alle istanze del notebook Jupyter che puoi utilizzare per eseguire l'esempio in AI, consulta. SageMaker [Istanze di notebook Amazon SageMaker](nbi.md) Dopo aver creato un'istanza di notebook e averla aperta, seleziona la ** scheda Esempi di ** SageMaker intelligenza artificiale per visualizzare un elenco di tutti gli esempi di intelligenza artificiale. SageMaker Per aprire un notebook, fai clic sulla relativa scheda **Use (Utilizza)** e seleziona **Create copy (Crea copia)**.

Per un post sul blog sull'uso dell'algoritmo RCF, consulta [ Utilizzare l'algoritmo integrato di Amazon SageMaker AI Random Cut Forest per il rilevamento delle anomalie. ](https://aws.amazon.com/blogs/machine-learning/use-the-built-in-amazon-sagemaker-random-cut-forest-algorithm-for-anomaly-detection/)