Algoritmo RCF (Random Cut Forest) - Amazon SageMaker

Algoritmo RCF (Random Cut Forest)

O Random Cut Forest (RCF) do Amazon SageMaker é um algoritmo não supervisionado para detecção de pontos de dados anormais em um conjunto de dados. Trata-se de observações que divergem de outros dados padronizados ou bem-estruturados. As anomalias podem se manifestar como picos inesperados em dados de séries temporais, pausas na periodicidade ou pontos de dados inclassificáveis. São de fácil descrição quando visualizados em um gráfico, pois frequentemente se distinguem dos dados "normais". A inclusão dessas anomalias em um conjunto de dados pode aumentar drasticamente a complexidade de uma tarefa de machine learning, já que os dados "normais" podem ser descritos com um modelo simples.

A cada ponto de dados, o RCF associa uma pontuação de anomalia. Os valores de pontuação baixa indicam que o ponto de dados é considerado "normal". Valores altos indicam a presença de uma anomalia nos dados. As definições de "baixo" e "alto" dependem da aplicação, mas a prática comum sugere que as pontuações além dos três desvios padrão da pontuação média são consideradas anormais.

Embora haja muitas aplicações de algoritmos de detecção de anomalia para dados de séries temporais unidirecionais, como a análise de volume de tráfego ou a detecção de pico de volume de som, o RCF foi projetado para funcionar com entradas dimensionais arbitrárias. O RCF do Amazon SageMaker escala bem com relação ao número de atributos, tamanho do conjunto de dados e número de instâncias.

Interface de entrada/saída para o algoritmo RCF

O Random Cut Forest do Amazon SageMaker é compatível com os canais de dados train e test. O canal de teste opcional é usado para calcular métricas de precisão, exatidão, recall e pontuação F1 em dados rotulados. Os tipos de conteúdo dos dados de treinamento e teste podem ser dos formatos application/x-recordio-protobuf ou text/csv. Para os dados de teste, ao usar o formato text/csv, o conteúdo deve ser especificado como text/csv;label_size=1, onde a primeira coluna de cada linha representa o rótulo de anomalia: "1" para um ponto de dados anormal, e "0" para um ponto de dados normal. É possível usar o modo de Arquivo ou de Pipe para treinar modelos RCF em dados formatados como recordIO-wrapped-protobuf ou CSV

O canal de treinamento só é compatível com S3DataDistributionType=ShardedByS3Key e o canal de teste só é compatível com S3DataDistributionType=FullyReplicated. O exemplo a seguir especifica o tipo de distribuição S3 para o canal de trem usando o Amazon SageMaker Python SDK.

nota

O método sagemaker.inputs.s3_input foi renomeado para sagemaker.inputs.TrainingInput no SageMaker Python SDK v2.

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})

Para evitar erros comuns em relação às funções de execução, verifique se você tem as funções de execução necessárias, AmazonSageMakerFullAccess e AmazonEC2ContainerRegistryFullAccess. Para evitar erros comuns em que sua imagem não exista ou que suas permissões estejam incorretas, certifique-se de que sua imagem do ECR não seja maior do que o espaço em disco alocado na instância de treinamento. Para evitar isso, execute seu trabalho de treinamento em uma instância que tenha espaço em disco suficiente. Além disso, se sua imagem do ECR for do repositório do Elastic Container Service (ECS) de uma AWS conta diferente e você não definir permissões de repositório para conceder acesso, isso resultará em erro. Consulte as permissões do repositório ECR para obter mais informações sobre como definir uma declaração de política de repositório.

Consulte a S3DataSource para obter mais informações sobre como personalizar os atributos da fonte de dados do S3. Por fim, para aproveitar o treinamento de várias instâncias, os dados de treinamento devem ser particionados, pelo menos, na mesma quantidade de arquivos que as instâncias.

Para inferência, o RCF é compatível com os tipos de conteúdo de dados de entrada application/x-recordio-protobuf, text/csv e application/json. Consulte a documentação do Parâmetros para algoritmos integrados para obter mais informações. A inferência do RCF retorna a saída formatada application/x-recordio-protobuf ou application/json. Cada registro desses dados de saída contém as pontuações de anomalias correspondentes de cada ponto de dados de entrada. Consulte Formatos de dados gerais: Inferência para obter mais informações.

Para obter mais informações sobre formatos de arquivo de entrada e saída, consulte Formatos de resposta do RCF para inferência e os Cadernos de amostra do RCF.

Recomendações de instâncias para o algoritmo RCF

Para treinamento, recomendamos as famílias de instâncias ml.m4, ml.c4 e ml.c5. Para inferência, recomendamos usar um tipo de instância ml.c5.xl em particular, que oferece máximo desempenho e menor custo por hora de uso. Embora possa tecnicamente ser executado em tipos de instância de GPU, o algoritmo não aproveita o hardware de GPU.

Cadernos de amostra do RCF

Para um exemplo de como treinar um modelo RCF e realizar inferências com ele, consulte o caderno Introdução a Random Cut Forests do SageMaker. Para obter instruções sobre como criar e acessar instâncias do caderno Jupyter que podem ser usadas para executar o exemplo no SageMaker, consulte instância de caderno do Amazon SageMaker. Depois de criar uma instância de caderno e abri-la, selecione a guia Exemplos do SageMaker para ver uma lista de todas as amostras do SageMaker. Para abrir um caderno, clique em sua guia Uso e selecione Criar cópia.

Consulte a postagem no blog sobre o uso do algoritmo RCF: Uso do algoritmo integrado Random Cut Forest do Amazon SageMaker para detecção de anomalias.