Gestion des erreurs dans Power Automate via le branchement parallèle
Découvrez l
La détection des valeurs aberrantes est une tâche importante dans le domaine de l'apprentissage automatique. Il est utilisé pour identifier des observations inhabituelles ou des points de données qui s'écartent de la tendance générale de l'ensemble de données. Un algorithme efficace pour la détection des valeurs aberrantes est l' algorithme Isolation Forest .
Dans le blog d'aujourd'hui, nous couvrirons les bases de l'algorithme Isolation Forest et montrerons comment l'utiliser pour détecter les valeurs aberrantes dans un ensemble de données à l'aide de Python . Vous pouvez regarder la vidéo complète de ce tutoriel au bas de ce blog .
Table des matières
Algorithme de la forêt d'isolement vs méthode de la boîte à moustaches
Ci-dessous, deux visuels pour la détection des valeurs aberrantes. Notez les différences significatives dans la représentation visuelle lors de l'utilisation de la par rapport à l'utilisation du modèle Isolation Forest ML pour la détection des valeurs aberrantes.
Dans le modèle Isolation Forest ML, le pourcentage de valeurs aberrantes détectées par l'algorithme IS Anomaly Detection est de 32,56 %. En utilisant le même algorithme, les 67,44% restants des données se situent dans la plage normale, ce qui est assez sensible. Notre objectif est d'affiner cette sensibilité en utilisant Python .
La méthode traditionnelle de détection des valeurs aberrantes
La manière traditionnelle de trouver une valeur aberrante consiste à utiliser une méthode de diagramme en boîte . Dans cette méthode, nous utilisons l'IQR pour trouver ce qui se situe en dehors de la plage attendue des données.
Dans cet exemple, ce point unique au-dessus de la moustache est notre valeur aberrante.
Si nous traduisons ce graphique visuel en graphique à secteurs, nous obtiendrons cette valeur aberrante particulière qui équivaut à 2,33 % du total des données.
Dans ce blog, nous apprendrons à utiliser la méthode Isolation Forest ML, à l'ajuster pour qu'elle corresponde à la méthode traditionnelle et à augmenter ou diminuer sa sensibilité.
L'ensemble de données pour l'algorithme de forêt d'isolement
Ouvrez notre jeu de données dans LuckyTemplates. Cliquez ensuite sur Transformer les données.
Notre ensemble de données pour ce didacticiel s'affichera. Il contient la date , le nombre d' utilisateurs , l' index et la valeur aberrante de la forêt d'isolement avec la sortie 1 pour la plage normale et -1 pour les valeurs aberrantes.
Nous avons également une colonne pour Traditional Outlier et une colonne conditionnelle intitulée IS Anomaly Detection reflétant Isolation Forest Outlier.
Notre deuxième requête montre notre trame de données que nous apprendrons à tout assembler.
Les codes Python
Dans le volet Propriétés , nous pouvons voir nos deux scripts Python en cours d'exécution. Nous créons la sortie Isolation Forest avec l'un de ces scripts Python et générons la valeur aberrante traditionnelle avec l'autre.
Code Python de l'algorithme de la forêt d'isolement
Cliquez sur Exécuter le script Python pour afficher le code.
Dans ce code Python, nous importons des pandas en tant que pd et utilisons quelque chose appelé Isolation Forest.
Une forêt d'isolement est un modèle arborescent qui prend des décisions basées sur une structure arborescente, puis décide s'il s'agit d'une valeur aberrante ou non. Nous appelons cela un modèle d'ensemble car il utilise deux méthodes différentes pour trouver une valeur aberrante particulière.
Nous remplaçons également la variable dataset , qui contient notre jeu de données par défaut, en tant que df .
Compte tenu de notre ensemble de données, nous n'aurons pas besoin des deux lignes de codes mises en évidence ci-dessous, nous pouvons donc simplement supprimer ces lignes.
Ce que nous faisons, c'est instancier le modèle.
Enregistrez le modèle sous IsolationForest et laissez le modèle apprendre les données avec les utilisateurs. Ensuite, créez une nouvelle colonne appelée Anomaly Detection qui reviendra sur toutes les données qu'elle apprend et prédira laquelle doit être une valeur aberrante ou non.
Pour cette fonction, la valeur par défaut pour la contamination est fixée à 0,5 . Ainsi, il est super sensible pour le moment et recherchera beaucoup de valeurs aberrantes. C'est pourquoi, dans notre graphique circulaire précédent, nous avons une fourchette très élevée de valeurs aberrantes à 32,56 %.
Pour le rendre moins sensible, nous pouvons ajouter contamination = .1 dans la fonction IsolationForest .
Enfin, réinitialisez l'index et cliquez sur OK.
Le résultat affichera un tableau récapitulatif. Dirigez-vous vers le volet Étapes appliquées et cliquez sur df.
Dans la sortie, nous pouvons trouver les valeurs aberrantes sous la colonne Anomaly Detection .
Nous voulons également voir comment il se comporte à côté de la valeur aberrante traditionnelle.
Code Python traditionnel des valeurs aberrantes
Nous allons exécuter un autre script Python qui, dans cet exemple, est le script Run Python1.
Ce code ajoute une fonction de valeur aberrante en utilisant les premier et troisième quartiles. Lorsque nous soustrayons q1 de q3 , nous obtenons l' Interquartile Range (IQR) .
Les deux lignes suivantes définissent les conditions pour les valeurs aberrantes. La première ligne indique que tout ce qui est inférieur à 1,5 * iqr est considéré comme une valeur aberrante négative ou inférieure. C'est aussi ainsi que nous trouvons les valeurs aberrantes de manière traditionnelle.
Nous savons également que nous avons une valeur aberrante comme point le plus élevé dans nos données. Pour tenir compte de cela, la deuxième ligne indique que les points de données supérieurs à q3 + 1,5 * iqr sont également considérés comme des valeurs aberrantes.
Renvoyez cet ensemble de données et utilisez la fonction outliers(df, 'Users') . Cliquez ensuite sur OK.
Un tableau récapitulatif similaire à celui que nous avons précédemment apparaîtra.
Si nous allons dans le volet Applied Steps et cliquez sur Changed Type1 , nous obtiendrons côte à côte les colonnes Traditional Outlier et Anomaly Detection , cette dernière utilisant 1 et -1 pour indiquer les valeurs aberrantes et non.
Cependant, lorsque nous utilisons des dates avec Python, elles peuvent sembler erronées.
Ce que nous pouvons faire, c'est créer une colonne supplémentaire à l'aide de l' Index à partir de Ajouter une colonne .
Ensuite, ajoutez Index à la colonne précédente avec Merge , afin que nous puissions conserver toutes les informations dans cette colonne/ensemble de données d'origine.
Une fois que nous avons tout ensemble, nous pouvons exécuter notre code et mettre à jour nos visuels. Rappelez-vous que nous avons changé la contamination de la valeur aberrante de 0,5 à 0,1, nous devrions donc voir cette partie du graphique se réduire un peu.
Revenez aux visuels et cliquez sur Appliquer les modifications.
Remarquez comment la détection d'anomalies est passée de 32,56 % à 11,63 % de nos données.
Comme nous le voyons dans nos résultats, c'est un bon moyen d'optimiser notre détection des valeurs aberrantes.
Rappelez-vous également que lorsque les gens utilisent la méthode traditionnelle, ils peuvent utiliser des valeurs inférieures à 1,5, mais 1,5 x IQR est néanmoins la méthode traditionnelle.
Détection et présentation des résultats de valeurs aberrantes dans LuckyTemplates
Création de points de déclenchement de valeurs
aberrantes dynamiques dans LuckyTemplates
Conclusion
En utilisant l'algorithme Isolation Forest, nous pouvons facilement identifier et exclure toute observation inhabituelle de notre ensemble de données, améliorant ainsi la précision de notre analyse. Ce tutoriel a fourni un guide étape par étape sur la façon d'utiliser l'algorithme Isolation Forest pour la détection des valeurs aberrantes à l'aide de Python, ce qui devrait vous aider à commencer à l'implémenter dans vos propres projets.
Ce que nous avons fait était un moyen très simple d'utiliser notre code Python pour trouver des anomalies. Vous pouvez optimiser davantage cet algorithme en modifiant la contamination et une foule d'autres variables que vous pouvez apprendre via la page de code de Python .
Tous mes vœux,
Découvrez l
Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.
Dans ce blog, vous découvrirez comment diviser les colonnes dans LuckyTemplates par délimiteurs à l'aide de DAX, une méthode efficace pour gérer des modèles de données complexes.
Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.
Calculez la marge en pourcentage à l
Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l
Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d
Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.
Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d
Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.