Détection des anomalies reposant sur le PCA
Important
Le support de Machine Learning Studio (classique) prend fin le 31 août 2024. Nous vous recommandons de passer à Azure Machine Learning avant cette date.
À partir du 1er décembre 2021, vous ne pourrez plus créer de nouvelles ressources Machine Learning Studio (classique). Jusqu’au 31 août 2024, vous pouvez continuer à utiliser les ressources Machine Learning Studio (classique) existantes.
- Consultez les informations sur le déplacement des projets de machine learning de ML Studio (classique) à Azure Machine Learning.
- En savoir plus sur Azure Machine Learning.
La documentation ML Studio (classique) est en cours de retrait et ne sera probablement plus mise à jour.
Crée un modèle de détection d'anomalie basé sur une analyse de composant principal
Catégorie : détection des anomalies
Notes
s’applique à: Machine Learning Studio (classic) uniquement
Des modules par glisser-déposer similaires sont disponibles dans Concepteur Azure Machine Learning.
Vue d’ensemble du module
cet article explique comment utiliser le module de détection d’anomalies basé sur l’apc dans Machine Learning Studio (classic) pour créer un modèle de détection d’anomalies basé sur l’analyse des composants principaux (pca).
Ce module vous aide à créer un modèle dans des scénarios où il est facile d’obtenir des données de formation d’une classe, telles que des transactions valides, mais difficile d’obtenir des échantillons suffisants des anomalies ciblées.
Par exemple, pour détecter les transactions frauduleuses, très souvent, vous n’avez pas assez d’exemples de fraudes pour effectuer une formation, mais vous avez de nombreux exemples de bonnes transactions. Le module de détection d’anomalies basé sur l’APC résout le problème en analysant les fonctionnalités disponibles pour déterminer ce qui constitue une classe « normale » et en appliquant des mesures de distance pour identifier les cas qui représentent des anomalies. Cela vous permet d’effectuer l’apprentissage d’un modèle à l’aide de données déséquilibrées existantes.
En savoir plus sur l'analyse en composantes principales (ACP)
L' analyse des composants principaux, qui est souvent abrégée en PCA, est une technique établie dans machine learning. Cette technique est fréquemment utilisée dans l'analyse exploratoire des données, car elle révèle la structure interne des données et explique la variance dans les données.
L’ACP fonctionne en analysant les données qui contiennent plusieurs variables. Elle recherche les corrélations entre les variables et détermine la combinaison des valeurs qui capturent le mieux les différences dans les résultats. Ces valeurs de fonctionnalités combinées sont utilisées pour créer un espace de fonctionnalités plus compact appelé les composantes principales.
Pour la détection des anomalies, chaque nouvelle entrée est analysée et l’algorithme de détection d’anomalies calcule sa projection sur le vecteurs propres, ainsi qu’une erreur de reconstruction normalisée. L’erreur normalisée est utilisée comme score d’anomalie. Plus l’erreur est élevée, plus l’instance est anormale.
Pour plus d’informations sur le fonctionnement de l’APC et sur l’implémentation de la détection des anomalies, consultez les documents suivants :
Algorithme aléatoire pour l’analyse des composants principaux. Rokhlin, Szlan et Tygert
Recherche de la structure avec caractère aléatoire : algorithmes probabilistes pour la construction de décompositions de matrice approximatives (téléchargement PDF). Halko, Martinsson et Tropp
Comment configurer la détection d’anomalies PCA
Ajoutez le module de détection d’anomalies basé sur PCA à votre expérience dans Studio (Classic). vous pouvez trouver ce module sous Machine Learning, initialiser le modèle, dans la catégorie détection des anomalies .
Dans le volet Propriétés du module de détection d’anomalies basé sur l’APC, cliquez sur l’option mode d’apprentissage et indiquez si vous souhaitez effectuer l’apprentissage du modèle à l’aide d’un ensemble spécifique de paramètres ou utilisez un balayage de paramètre pour rechercher les meilleurs paramètres.
Single Parameter (Paramètre unique) : sélectionnez cette option si vous savez comment vous voulez configurer le modèle, et fournissez un ensemble spécifique de valeurs en tant qu’arguments.
Plage de paramètres: sélectionnez cette option si vous n’êtes pas sûr des meilleurs paramètres et que vous souhaitez utiliser un balayage de paramètre à l’aide du module paramétrer les hyperparamètres de modèle . Le formateur effectue une itération sur une plage de paramètres que vous spécifiez et détermine la combinaison de paramètres qui produit les résultats optimaux.
Nombre de composants à utiliser dans l’APC, plage pour le nombre de composants PCA: spécifiez le nombre de fonctionnalités de sortie ou de composants que vous souhaitez générer.
Le choix du nombre de composants à inclure est une partie importante de la conception d’expérimentation à l’aide de PCA. D’une manière générale, vous ne devez pas inclure le même nombre de composantes ACP que de variables. Au lieu de cela, vous devez commencer avec un plus petit nombre de composants et les augmenter jusqu’à ce que certains critères soient remplis.
Si vous n’êtes pas sûr de la valeur optimale possible, nous vous recommandons d’effectuer l’apprentissage du modèle de détection d’anomalies à l’aide de l’option plage de paramètres .
Les meilleurs résultats sont obtenus lorsque le nombre de composantes de sortie est inférieur au nombre de colonnes de fonctionnalités disponibles dans le jeu de données.
Spécifiez le nombre de suréchantillonnages à effectuer lors de la formation de l’ACP aléatoire. Dans les problèmes de détection d’anomalie, les données déséquilibrées compliquent l’application des techniques ACP standard. En spécifiant une quantité de suréchantillonnage, vous pouvez augmenter le nombre d’instances cibles.
Si vous spécifiez 1, aucun suréchantillonnage n’est effectué. Si vous spécifiez une valeur supérieure à 1, des échantillons supplémentaires sont générés pour être utilisés dans l’entraînement du modèle.
Il existe deux options, selon que vous utilisez ou non un balayage de paramètre :
- Paramètre de suréchantillonnage pour l’ACP aléatoire : Saisissez un nombre entier unique qui représente le rapport entre le suréchantillonnage de la classe minoritaire et la classe normale. (Disponible lors de l’utilisation de la méthode d’apprentissage avec un seul paramètre .)
- Plage du paramètre de suréchantillonnage utilisé dans l’APC aléatoire: tapez une série de nombres à essayer ou utilisez le générateur de plage pour sélectionner des valeurs à l’aide d’un curseur. (Disponible uniquement lors de l’utilisation de la méthode d’apprentissage de plage de paramètres .)
Notes
Vous ne pouvez pas afficher le jeu de données suréchantillonné. Pour plus d’informations sur l’utilisation du suréchantillonnage avec PCA, consultez les Notes techniques.
Activer la normalisation des moyennes de la fonctionnalité d’entrée: sélectionnez cette option pour normaliser toutes les fonctionnalités d’entrée sur une moyenne de zéro. La normalisation ou la mise à l’échelle sur zéro est généralement recommandée pour l’ACP, car l’objectif de cette dernière est d’optimiser l’écart entre les variables.
Cette option est activée par défaut. Désélectionnez cette option si les valeurs ont déjà été normalisées à l’aide d’une méthode ou d’une échelle différente.
Connecter un jeu de données d’apprentissage balisé et l’un des modules de formation :
- Si vous définissez l’option Créer un mode d’apprentissage sur Paramètre unique, utilisez le module Entraîner le modèle de détection d’anomalie.
- Si vous affectez à l’option créer le mode de l’instructeur la valeur plage de paramètres, utilisez le module régler le modèle hyperparamètres .
Notes
Si vous transmettez une plage de paramètres pour former un modèle de détection d’anomalie, elle utilise uniquement la première valeur de la liste de plages de paramètres.
Si vous transmettez un ensemble unique de valeurs de paramètre au module paramétrer les hyperparamètres de modèle , lorsqu’il attend une plage de paramètres pour chaque paramètre, il ignore les valeurs et utilise les valeurs par défaut pour l’apprenant.
Si vous sélectionnez l’option plage de paramètres et que vous entrez une valeur unique pour un paramètre, cette valeur unique est utilisée tout au long du balayage, même si d’autres paramètres changent sur une plage de valeurs.
Exécutez l’expérience ou sélectionnez le module, puis cliquez sur exécuter la sélection.
Résultats
Une fois l’apprentissage terminé, vous pouvez enregistrer le modèle formé ou le connecter au module noter le modèle pour prédire les scores d’anomalie.
Pour évaluer les résultats d’un modèle de détection d’anomalie, vous devez effectuer quelques étapes supplémentaires :
Vérifier qu’une colonne score est disponible dans les deux jeux de données
Si vous essayez d’évaluer un modèle de détection d’anomalie et que vous obtenez l’erreur « il n’y a pas de colonne de score dans le jeu de données noté à comparer », cela signifie que vous utilisez un jeu de données d’évaluation classique qui contient une colonne d’étiquette, mais pas de score de probabilité. Vous devez choisir un jeu de données qui correspond à la sortie de schéma pour les modèles de détection d’anomalie, qui comprend une colonne étiquettes notées et probabilités notées .
S’assurer que les colonnes d’étiquette sont marquées
Parfois, les métadonnées associées à la colonne d’étiquette sont supprimées dans le graphique d’expérimentation. Dans ce cas, lorsque vous utilisez le module évaluer le modèle pour comparer les résultats de deux modèles de détection d’anomalies, vous pouvez obtenir l’erreur « il n’y a aucune colonne d’étiquette dans le jeu de données scored », ou « il n’existe aucune colonne d’étiquette dans le jeu de données avec score calculé à comparer ».
Vous pouvez éviter cette erreur en ajoutant le module modifier les métadonnées avant le module évaluer le modèle . Utilisez le sélecteur de colonne pour choisir la colonne de classe et, dans la liste déroulante champs , sélectionnez étiquette.
Normaliser les scores à partir de différents types de modèles
Les prédictions du modèle de détection d’anomalie PCA se trouvent toujours dans la plage [0, 1]. En revanche, la sortie du module SVM à une classe est des scores non étalonnés qui sont éventuellement sans limite.
Par conséquent, si vous comparez des modèles basés sur des algorithmes différents, vous devez toujours normaliser les scores. Consultez l’exemple de la Azure AI Gallery pour obtenir un exemple de normalisation parmi les différents modèles de détection d’anomalies.
Exemples
Pour obtenir des exemples d’utilisation de PCA pour la détection d’anomalies, consultez la Azure ai Gallery:
- Détection des anomalies : risque de crédit: montre comment rechercher des valeurs hors norme dans les données. Cet exemple utilise un balayage de paramètre pour rechercher le modèle optimal. Il applique ensuite ce modèle aux nouvelles données pour identifier les transactions risquées susceptibles de représenter des fraudes, en comparant deux modèles de détection d’anomalies différents.
Notes techniques
Cet algorithme utilise PCA pour rapprocher le sous-espace contenant la classe normale. Le sous-espace est fractionné par vecteurs propres associés au valeurs propres supérieures de la matrice de covariance des données. Pour chaque nouvelle entrée, le détecteur d’anomalies calcule d’abord sa projection sur les vecteurs propres avant de calculer l’erreur de reconstruction normalisée. Cette erreur représente le score d’anomalie. Plus l’erreur est élevée, plus l’instance est anormale. Pour plus d’informations sur la façon dont l’espace normal est calculé, consultez Wikipédia : analyse des composants principaux
Paramètres du module
Nom | Type | Plage | Facultatif | Description | Default |
---|---|---|---|---|---|
Mode d'apprentissage | CreateLearnerMode | List:Single Parameter|Parameter Range | Obligatoire | Paramètre unique | Spécifiez les options de l'apprenant. Utilisez l'option SingleParameter pour spécifier manuellement toutes les valeurs. Utilisez l'option ParameterRange pour parcourir les paramètres ajustables. |
Nombre de composants à utiliser dans l'ACP | Entier | mode:Single Parameter | 2 | Spécifiez le nombre de composants à utiliser dans l'ACP. | |
Paramètre de suréchantillonnage pour l'ACP aléatoire | Entier | mode:Single Parameter | 2 | Spécifiez le paramètre de précision pour l'apprentissage basé sur l'ACP aléatoire. | |
Activer la normalisation des moyennes des fonctionnalités d'entrée | Logic type | List:True|False | Obligatoire | False | Spécifiez si les données d'entrée sont normalisées pour avoir une moyenne égale à zéro. |
Plage pour le nombre de composants ACP | ParameterRangeSettings | [1 ; 100] | mode:Parameter Range | 2 4 6,3 version8 10 | Spécifiez la plage pour le nombre de composants à utiliser dans l'ACP. |
Plage pour le paramètre de suréchantillonnage utilisé dans l'ACP aléatoire | ParameterRangeSettings | [1 ; 100] | mode:Parameter Range | 2 4 6,3 version8 10 | Spécifiez la plage pour le paramètre de précision utilisé pour l'apprentissage basé sur l'ACP aléatoire. |
Sorties
Nom | Type | Description |
---|---|---|
Untrained model (Modèle non entraîné) | Interface ILearner | Modèle non formé de détection d'anomalie basé sur l'analyse en composantes principales (ACP) |
Exceptions
Exception | Description |
---|---|
Erreur 0017 | Une exception se produit si une ou plusieurs colonnes spécifiées présentent un type non pris en charge par le module actuel. |
Erreur 0062 | Une exception se produit lorsque l’on tente de comparer deux modèles avec des types d’apprenants différents. |
Erreur 0047 | Une exception se produit si le nombre de colonnes de fonctionnalités de certains jeux de données transmis au module est trop faible. |
pour obtenir la liste des erreurs spécifiques aux modules Studio (classiques), consultez Machine Learning codes d’erreur.
pour obtenir la liste des exceptions d’api, consultez Machine Learning les Codes d’erreur de l' api REST.