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,


Quest-ce que le self en Python ? Exemples concrets

Quest-ce que le self en Python ? Exemples concrets

Qu'est-ce que le self en Python ? Exemples concrets

Comment enregistrer et charger un fichier RDS dans R

Comment enregistrer et charger un fichier RDS dans R

Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.

First N Business Days Revisited - Une solution de langage de codage DAX

First N Business Days Revisited - Une solution de langage de codage DAX

Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Présentez des informations à laide de la technique des visuels dynamiques multi-threads dans LuckyTemplates

Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.

Introduction au filtrage du contexte dans LuckyTemplates

Introduction au filtrage du contexte dans LuckyTemplates

Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Meilleurs conseils pour utiliser les applications dans le service en ligne LuckyTemplates

Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Analyser les changements de marge bénéficiaire au fil du temps - Analytics avec LuckyTemplates et DAX

Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.

Idées de matérialisation pour les caches de données dans DAX Studio

Idées de matérialisation pour les caches de données dans DAX Studio

Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.

Rapports dentreprise à laide de LuckyTemplates

Rapports dentreprise à laide de LuckyTemplates

Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Quest-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir

Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir