Algorithme RCF (Random Cut Forest) - Amazon SageMaker

Algorithme RCF (Random Cut Forest)

Random Cut Forest (RCF) est un algorithme non supervisé d'Amazon SageMaker pour la détection des points de données anormaux au sein d'un jeu de données. Il s'agit d'observations qui s'écartent de données autrement bien structurées ou calquées. Des anomalies peuvent se manifester sous la forme de pics inattendus au sein de données en séries chronologiques, de ruptures de la périodicité ou de points de données inclassables. Elles sont faciles à décrire, car lorsqu'elles sont affichées dans un tracé, elles sont souvent aisément décelables au milieu des données « normales ». L'inclusion de ces anomalies dans un ensemble de données peut considérablement augmenter la complexité de la tâche de machine learning, car les données « normales » peuvent souvent être décrites à l'aide d'un modèle simple.

L'algorithme RCF associe un score d'anomalie à chaque point de données. De faibles valeurs indiquent que le point de données est considéré comme « normal ». Des valeurs élevées indiquent la présence d'une anomalie dans les données. Les définitions de « faible » et « élevée » dépendent de l'application mais la pratique courante suggère que les valeurs au-delà de trois écarts-types de la moyenne sont considérées comme anormales.

Même s'il y a plusieurs applications d'algorithmes de détection d'anomalies sur des données en séries chronologiques unidimensionnelles telles que l'analyse du volume de trafic ou la détection de pics de volume sonore, l'algorithme RCF est conçu pour fonctionner avec des entrées de dimensions arbitraires. L'algorithme RCF d'Amazon SageMaker se dimensionne bien par rapport au nombre de fonctions, à la taille du jeu de données et au nombre d'instances.

Interface d'entrée/sortie de l'algorithme RCF

Amazon SageMaker Random Cut Forest prend en charge les canaux de données train et test. Le canal de test facultatif est utilisé pour le calcul des métriques de rectitude, de précision, de rappel et de score F1 sur les données étiquetées. Entraîner et tester les types de contenu de données peut relever des formats application/x-recordio-protobuf ou text/csv. Pour les données de test, lorsque vous utilisez le format text/csv, le contenu doit être spécifié comme text/csv;label_size=1 où la première colonne de chaque ligne représente l'étiquette d'anomalie « 1 » pour un point de données anormal et « 0 » pour un point de données normal. Vous pouvez utiliser le mode File ou le mode Pipe pour entraîner les modèles RCF sur les données obéissant au format recordIO-wrapped-protobuf ou au format CSV.

Le canal d'entraînement prend uniquement en charge S3DataDistributionType=ShardedByS3Key, tandis que celui de test prend uniquement en charge S3DataDistributionType=FullyReplicated. L'exemple suivant spécifie le type de distribution S3 pour le canal d'entraînement à l'aide du kit SDK Amazon SageMaker Python.

Note

La méthode sagemaker.inputs.s3_input a été renommée en sagemaker.inputs.TrainingInput dans le kit SDK SageMaker Python 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})

Pour éviter les erreurs courantes relatives aux rôles d'exécution, assurez-vous que vous disposez des rôles d'exécution requis, AmazonSageMakerFullAccess et AmazonEC2ContainerRegistryFullAccess. Pour éviter les erreurs courantes relatives à l'absence de votre image ou au caractères incorrecte de ses autorisations, assurez-vous que votre image ECR n'est pas plus grande que l'espace disque alloué sur l'instance d'entraînement. Pour éviter cela, exécutez votre tâche d'entraînement sur une instance disposant d'un espace disque suffisant. En outre, si votre image ECR provient du référentiel Elastic Container Service (ECS) d'un autre compte AWS et que vous ne définissez pas les autorisations de référentiel pour accorder l'accès, cela entraînera une erreur. Consultez la section relative aux autorisations de référentiel ECR pour en savoir plus sur la définition d'une instruction de politique de référentiel.

Veuillez consulter S3DataSource pour obtenir de plus amples informations sur la personnalisation des attributs de source de données S3. Enfin, pour tirer parti de l'entraînement de plusieurs instances, les données d'entraînement doivent être partitionnées en au moins autant de fichiers que d'instances.

Pour l'inférence, l'algorithme RCF prend en charge des types de contenus de données d'entrée application/x-recordio-protobuf et text/csv , application/json. Consultez la documentation Formats de données courants des algorithmes intégrés pour plus de détails. L'inférence RCF renvoie la sortie au format application/x-recordio-protobuf ou application/json. Chaque enregistrement dans ces données de sortie contient les valeurs d'anomalies correspondant à chaque point de données d'entrée. Consultez la section Formats de données courants – Inférence pour plus d'informations.

Pour plus d'informations sur les formats de fichier en entrée et en sortie, consultez Formats de la réponse RCF pour l'inférence, ainsi que la rubrique Exemples de blocs-notes RCF.

Recommandations relatives aux instances pour l'algorithme RCF

Pour les entraînements, nous vous recommandons les familles d'instances ml.m4, ml.c4 et ml.c5. Pour l'inférence, nous vous recommandons d'utiliser un type d'instance ml.c5.xl en particulier, pour obtenir des performances optimales ainsi que pour réduire le coût par heure d'utilisation. Même si l'algorithme peut techniquement s'exécuter sur les types d'instance GPU, il n'utilise pas le matériel lié au processeur graphique.

Exemples de blocs-notes RCF

Pour obtenir un exemple de la façon d'entraîner un modèle et d'effectuer des inférences avec ce modèle consultez le bloc-notes sur l'introduction à l'algorithme RCF SageMaker. Pour savoir comment créer des instances de blocs-notes Jupyter et y accéder afin de les utiliser pour exécuter l'exemple dans SageMaker, consultez Utilisation des instances de bloc-notes Amazon SageMaker. Une fois que vous avez créé une instance de bloc-notes et que vous l'avez ouverte, sélectionnez l'onglet SageMaker Examples (Exemples SageMaker) pour afficher la liste de tous les exemples SageMaker. Pour ouvrir un bloc-notes, cliquez sur son onglet Use (Utiliser) et sélectionnez Create copy (Créer une copie).