Z-Score

Le score z ou score standard d’une observation est une métrique qui indique le nombre d’écarts types d’un point de données par rapport à la moyenne de l’échantillon, en supposant une distribution gaussienne. Cela fait du z-score une méthode paramétrique. Très souvent, les points de données ne sont pas décrits par une distribution gaussienne, ce problème peut être résolu en appliquant des transformations aux données, c’est-à-dire en les mettant à l’échelle.

Certaines bibliothèques Python comme Scipy et Sci-kit Learn ont des fonctions et des classes faciles à utiliser pour une implémentation facile avec Pandas et Numpy.

Après avoir effectué les transformations appropriées dans l’espace de caractéristiques sélectionné du jeu de données, le score z de n’importe quel point de données peut être calculé avec l’expression suivante :

Lors du calcul du score z pour chaque échantillon de l’ensemble de données, un seuil doit être spécifié. Certains bons seuils de « règle générale » peuvent être : 2,5, 3, 3,5 ou plus d’écarts-types.

En « marquant » ou en supprimant les points de données qui se situent au-delà d’un seuil donné, nous classons les données en valeurs aberrantes et non en valeurs aberrantes

Le Z-score est une méthode simple mais puissante pour éliminer les valeurs aberrantes dans les données si vous traitez des distributions paramétriques dans un espace de caractéristiques de faible dimension. Pour les problèmes non paramétriques Dbscan et Forêts d’isolement peut être de bonnes solutions.

Dbscan (regroupement spatial basé sur la densité d’applications avec bruit)

Dans l’apprentissage automatique et l’analyse de données, les méthodes de clustering sont des outils utiles qui nous aident à mieux visualiser et comprendre les données. Les relations entre les caractéristiques, les tendances et les populations dans un ensemble de données peuvent être représentées graphiquement via des méthodes de clustering telles que dbscan, et peuvent également être appliquées pour détecter les valeurs aberrantes dans les distributions non paramétriques dans de nombreuses dimensions.

Dbscan est un algorithme de clustering basé sur la densité, il se concentre sur la recherche de voisins par densité (MinPts) sur une « sphère à n dimensions » de rayon . Un cluster peut être défini comme l’ensemble maximal de « points connectés en densité » dans l’espace des caractéristiques.

Dbscan définit alors différentes classes de points :

  • Cpointe de minerai: UNE est un point central si son voisinage (défini par ɛ) contient au moins le même nombre ou plus de points que le paramètre MinPts.
  • Point frontière: C est un point frontière qui se trouve dans un cluster et son voisinage ne contient pas plus de points que MinPts, mais c’est toujours ‘densité atteignable’ par d’autres points du cluster.
  • Valeur aberrante: N est un point aberrant qui ne se trouve dans aucun cluster et ce n’est pas ‘densité atteignable’ ni ‘densité connectée’ à tout autre point. Ainsi ce point aura « son propre cluster ».

Si UNE est un point central, il forme un cluster avec tous les points qui sont accessibles à partir de celui-ci. UNE point Q est accessible de P s’il y a un chemin p1, …, pn avec p1 = p et pn = q, où chacun pi+1 est directement accessible depuis pi (tous les points sur le chemin doivent être des points centraux, à l’exception possible de q).

L’accessibilité est une relation non symétrique puisque, par définition, aucun point ne peut être accessible à partir d’un point non central, quelle que soit la distance (donc un point non central peut être accessible, mais rien ne peut en être atteint !). Par conséquent, une autre notion de connectivité est nécessaire pour définir formellement l’étendue des clusters trouvés par cet algorithme.

Deux points p et q sont liés par la densité s’il existe un point o tel que les deux p et q sont accessibles en densité à partir de o. Densité-connectivité est symétrique.

Un cluster satisfait à deux propriétés :

  • Tous les points au sein du cluster sont mutuellement connectés en densité.
  • Si un point est accessible en densité depuis n’importe quel point du cluster, il fait également partie du cluster.

Sci-kit Learn a une implémentation de dbscan qui peut être utilisée avec les pandas pour créer un modèle de détection des valeurs aberrantes.

Encore une fois, la première étape consiste à mettre à l’échelle les données, puisque le rayon ?? définira les quartiers avec MinPts. (Astuce : un bon scaler pour le problème posé peut être Sci-kit Learn’s Détartreur robuste).

Après avoir mis à l’échelle l’espace des fonctionnalités, il est temps de choisir la métrique spatiale sur laquelle dbscan effectuera le clustering. La métrique doit être choisie en fonction du problème, une métrique euclidienne fonctionne bien pour 2 ou 3 dimensions, la métrique de Manhattan peut également être utile lorsqu’il s’agit d’espaces de caractéristiques de plus haute dimension 4 dimensions ou plus.

Ensuite, le paramètre eps (ɛ) doit être choisi en conséquence pour effectuer le clustering. Si ɛ est trop grand, de nombreux points seront connectés en densité, s’il est trop petit, le clustering entraînera de nombreux clusters sans signification. Une bonne approche consiste à essayer des valeurs allant de 0,25 à 0,75.

Dbscan est également sensible au paramètre MinPts, son réglage dépendra entièrement du problème à résoudre.

La complexité de dbscan est de O(m Journal m), elle et une méthode efficace avec des ensembles de données de taille moyenne. Il est facile d’alimenter le modèle en données lors de l’utilisation de l’implémentation de Scikit learn. Après avoir adapté dbscan aux données, les clusters peuvent être extraits et chaque échantillon est affecté à un cluster. Dbscan estime le nombre de clusters par lui-même, il n’est pas nécessaire de spécifier le nombre de clusters souhaités, c’est un modèle de machine learning non supervisé.

Les valeurs aberrantes (bruit) seront attribuées au cluster -1. Après avoir marqué ces instances, elles peuvent être supprimées ou analysées.


Source de l’article