Algorithme de forêt disolement pour la détection de valeurs aberrantes en Python

Algorithme de forêt disolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en 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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Dans cet exemple, ce point unique au-dessus de la moustache est notre valeur aberrante.

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Notre deuxième requête montre notre trame de données que nous apprendrons à tout assembler. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Code Python de l'algorithme de la forêt d'isolement

Cliquez sur Exécuter le script Python pour afficher le code. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Dans ce code Python, nous importons des pandas en tant que pd et utilisons quelque chose appelé Isolation Forest. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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 %. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Pour le rendre moins sensible, nous pouvons ajouter contamination = .1 dans la fonction IsolationForest .

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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.

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Dans la sortie, nous pouvons trouver les valeurs aberrantes sous la colonne Anomaly Detection

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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.

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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)

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Renvoyez cet ensemble de données et utilisez la fonction outliers(df, 'Users') . Cliquez ensuite sur OK.

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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.

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Cependant, lorsque nous utilisons des dates avec Python, elles peuvent sembler erronées. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Ce que nous pouvons faire, c'est créer une colonne supplémentaire à l'aide de l' Index à partir de Ajouter une colonne .

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Revenez aux visuels et cliquez sur Appliquer les modifications. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Remarquez comment la détection d'anomalies est passée de 32,56 % à 11,63 % de nos données. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

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. 

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python

Algorithme de forêt d'isolement pour la détection de valeurs aberrantes en Python


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,


Gestion des erreurs dans Power Automate via le branchement parallèle

Gestion des erreurs dans Power Automate via le branchement parallèle

Découvrez l

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Comparaison de tables dans Power Query | Tutoriel LuckyTemplates

Découvrez comment comparer facilement des tables dans Power Query pour signaler les différences et optimiser vos analyses de données.

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

Colonne fractionnée LuckyTemplates par délimiteurs dans DAX

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.

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

SELECTEDVALUE DAX Exemple - Sélection de trancheuse de récolte

Découvrez comment récolter une valeur avec SELECTEDVALUE DAX pour des calculs dynamiques dans LuckyTemplates.

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculer la marge en pourcentage dans LuckyTemplates à laide de DAX

Calculez la marge en pourcentage à l

Modifier les formats de date à laide de léditeur Power Query

Modifier les formats de date à laide de léditeur Power Query

Dans ce didacticiel, nous allons explorer une méthode rapide pour convertir du texte en formats de date à l

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Enregistrer la pièce jointe dun e-mail sur SharePoint avec Power Automate

Dans ce blog, vous apprendrez à enregistrer automatiquement la pièce jointe d

Comment adapter les cellules Excel au texte : 4 solutions simples

Comment adapter les cellules Excel au texte : 4 solutions simples

Découvrez comment adapter les cellules Excel au texte avec ces 4 solutions simples pour améliorer la présentation de vos données.

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Générateur de rapports SSRS : formater les en-têtes dans un rapport paginé

Dans ce didacticiel SSRS Report Builder, découvrez comment utiliser le générateur d

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Thème de couleur dans les rapports LuckyTemplates - Conseils et techniques

Découvrez les outils pour créer un thème de couleur efficace pour vos rapports LuckyTemplates et améliorer leur apparence.