J'ai un scénario où j'ai plusieurs milliers d'instances de données. Les données elles-mêmes sont représentées comme une seule valeur entière. Je veux être capable de détecter quand une instance est une aberration extrême.Technique de détection d'anomalie recommandée pour un scénario simple et unidimensionnel?
Par exemple, avec les données d'exemple suivant:
a = 10
b = 14
c = 25
d = 467
e = 12
d
est clairement une anomalie, et je voudrais effectuer une action spécifique sur cette base.
J'ai été tenté de simplement essayer et utiliser mes connaissances du domaine particulier pour détecter les anomalies. Par exemple, calculez une distance par rapport à la valeur moyenne qui est utile, et vérifiez cela en vous basant sur les heuristiques. Cependant, je pense que c'est probablement mieux si j'étudie des techniques de détection d'anomalies plus générales, robustes, qui ont une certaine théorie derrière elles. Comme ma connaissance pratique des mathématiques est limitée, j'espère trouver une technique simple, comme l'utilisation de l'écart-type. Espérons que la nature unidimensionnelle des données rendra ce problème assez commun, mais si plus d'informations pour le scénario est nécessaire s'il vous plaît laissez un commentaire et je donnerai plus d'informations.
Edit: Je pensais ajouter plus d'informations sur les données et ce que j'ai essayé dans le cas où il fait une réponse plus correcte qu'une autre.
Les valeurs sont toutes positives et non nulles. Je m'attends à ce que les valeurs forment une distribution normale. Cette attente est basée sur une intuition du domaine plutôt que par l'analyse, si ce n'est pas une mauvaise chose à supposer, s'il vous plaît faites le moi savoir. En termes de clustering, à moins qu'il y ait aussi des algorithmes standard pour choisir une valeur k, je trouverais difficile de fournir cette valeur à un algorithme k-Means. L'action que je veux effectuer pour une anomalie/anomalie est de la présenter à l'utilisateur, et de recommander que le point de données soit essentiellement retiré de l'ensemble de données (je ne vais pas comprendre comment ils le feraient, mais cela a du sens pour mon domaine), donc il ne sera pas utilisé comme entrée pour une autre fonction. Jusqu'à présent, j'ai essayé trois-sigma, et le test des valeurs aberrantes IQR sur mon ensemble de données limité. IQR signale des valeurs qui ne sont pas assez extrêmes, trois-sigma souligne les instances qui correspondent le mieux à mon intuition du domaine. Les informations sur les algorithmes, les techniques ou les liens vers des ressources pour en apprendre davantage sur ce scénario spécifique sont des réponses valides et bienvenues.
Qu'est-ce qu'une technique de détection d'anomalie recommandée pour des données simples et unidimensionnelles?
Ne sous-estimez pas la valeur des connaissances scientifiques. Les procédures de boîte noire sont rarement la voie à suivre. Essayez d'exprimer vos connaissances scientifiques en termes de statistiques simples. – Tristan
@ Tristan: dites-vous que vous pensez que je devrais essayer de trouver un modèle qui a des bases dans les statistiques, mais en fin de compte est spécifique à mon domaine de problème? – Grundlefleck
Je dis simplement que votre connaissance de ce qui est raisonnable (c'est-à-dire, quel est le modèle qui génère les bonnes données et les mauvaises données) est une information importante. Vous devez concevoir une procédure, telle que l'utilisation de l'IQR, qui soit motivée par vos connaissances scientifiques du domaine. Je n'aime pas les choses comme k-means parce que ce n'est pas très motivé et qu'il est intrinsèquement inflexible, à mon avis. – Tristan