Algoritmo de bosque de corte aleatorio (RCF) - Amazon SageMaker

Algoritmo de bosque de corte aleatorio (RCF)

Amazon SageMaker Random Cut Forest (RCF) es un algoritmo sin supervisar para detectar puntos de datos anómalos dentro de un conjunto de datos. Son observaciones que difieren de los datos bien estructurados y con patrones. Se pueden mostrar anomalías como picos inesperados en los datos de serie temporal, cortes en la periodicidad o puntos de datos inclasificables. Son fáciles de detectar. Cuando se visualizan en un gráfico, se suelen distinguir fácilmente de los datos "normales". La inclusión de estas anomalías en un conjunto de datos puede aumentar notablemente la complejidad de una tarea de machine learning, ya que los datos "normales" pueden describirse con frecuencia con un modelo sencillo.

Con cada punto de datos, RCF asocia una puntuación de anomalías. Los valores de puntuación bajos indican que el punto de datos se considera "normal". Los valores elevados indican la presencia de una anomalía en los datos. Las definiciones de "bajo" y "alto" dependen de la aplicación, pero la práctica habitual sugiere que las puntuaciones que superan tres desvíos estándar de la puntuación media se consideran anómalas.

Aunque existen muchas aplicaciones de algoritmos de detección de anomalías en datos de serie temporal de una dimensión, como análisis de volumen de tráfico o detección de picos de volumen, RCF se ha creado para trabajar con entradas dimensionales arbitrarias. Amazon SageMaker RCF se escala correctamente en relación con el número de características, tamaño de conjunto de datos y número de instancias.

Interfaz de entrada/salida para el algoritmo RCF

Amazon SageMaker Random Cut Forest es compatible con los canales de datos train y test. El canal de prueba opcional se utiliza para calcular la exactitud, la precisión, la rellamada y las métricas de puntuación F1 en los datos etiquetados. Los tipos de contenido de datos de prueba y capacitación pueden tener los formatos application/x-recordio-protobuf o text/csv. Para los datos de prueba, cuando se usa el formato de texto/csv, el contenido debe especificarse como text/csv;label_size=1, donde la primera columna de cada fila representa la etiqueta de anomalía: "1" para el punto de datos anómalo y "0" para un punto de datos normal. Puede usar el modo de archivo o el modo de canalización para capacitar modelos RCF con datos con formato recordIO-wrapped-protobuf o CSV.

El canal de entrenamiento solo admite S3DataDistributionType=ShardedByS3Key y el canal de prueba solo es compatible con S3DataDistributionType=FullyReplicated. El siguiente ejemplo especifica el tipo de distribución S3 para el canal de entrenamiento mediante Amazon SageMaker Python SDK.

nota

Se cambió el nombre del método sagemaker.inputs.s3_input a sagemaker.inputs.TrainingInput en 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 errores comunes relacionados con las funciones de ejecución, asegúrese de tener las funciones de ejecución necesarias, AmazonSageMakerFullAccess y AmazonEC2ContainerRegistryFullAccess. Para evitar errores comunes relacionados con la inexistencia de la imagen o con permisos incorrectos, asegúrese de que la imagen ECR no supere el espacio en disco asignado a la instancia de entrenamiento. Para evitarlo, ejecute el trabajo de entrenamiento en una instancia que tenga suficiente espacio en disco. Además, si tu imagen de ECR proviene del repositorio de Elastic Container Service (ECS) de una AWS cuenta diferente y no configuras los permisos del repositorio para conceder el acceso, se producirá un error. Para obtener más información sobre la configuración de políticas de repositorios, consulte los permisos de repositorio ECR.

Consulte S3DataSource para obtener más información sobre la personalización de los atributos de origen de datos de S3. Por último, para aprovechar la capacitación de varias instancias, se deben particionar los datos de capacitación en el mismo número de archivos que las instancias.

Para la inferencia, RCF admite los tipos de contenido de datos de entrada application/x-recordio-protobuf, text/csv y application/json. Para obtener más información, consulte la documentación de Parámetros para algoritmos integrados. La inferencia de RCF devuelve la salida con formato application/x-recordio-protobuf o application/json. Los registros de estos datos de salida contienen las puntuaciones de anomalías correspondientes para cada punto de datos de entrada. Para obtener más información, consulte Formatos de datos comunes: Inferencia.

Para obtener más información sobre los formatos de archivo de entrada y salida, consulte Formatos de respuesta de RCF para inferencia y Cuadernos de ejemplo de RCF.

Recomendaciones de instancias para el algoritmo RCF

Para la capacitación, recomendamos las familias de instancias ml.m4, ml.c4 y ml.c5. Para la inferencia, recomendamos el uso de un tipo de instancia ml.c5.xl en particular para disfrutar del máximo desempeño, así como de costos reducidos por hora de uso. Aunque el algoritmo podría ejecutarse técnicamente en tipos de instancia de GPU, no aprovecha el hardware de GPU.

Cuadernos de ejemplo de RCF

Para ver un ejemplo de cómo entrenar un modelo RCF y realizar inferencias con este, consulte el cuaderno An Introduction to SageMaker Random Cut Forests. Para obtener instrucciones sobre cómo crear instancias de cuadernos de Jupyter que pueda utilizar para ejecutar el ejemplo en SageMaker, consulte Creación de una instancia de cuaderno de Amazon SageMaker. Una vez que haya creado una instancia de cuaderno y la haya abierto, seleccione la pestaña Ejemplos de SageMaker para ver una lista de todas las muestras de SageMaker. Para abrir un cuaderno, haga clic en la pestaña Usar y seleccione Crear copia.

Para ver una entrada de blog sobre el uso del algoritmo RCF, consulte Use the built-in Amazon SageMaker Random Cut Forest algorithm for anomaly detection.