[PYTHON] J'ai lu un article d'enquête sur la détection d'anomalies dans les séries chronologiques, je vais donc le résumer.

C'est Nishimori de Scrum Sign. Cette fois, en guise d'enquête de base, j'ai lu un article d'enquête sur la détection d'anomalies des données de séries chronologiques. Cet article est un résumé.

Titre Détection des anomalies des séries chronologiques Auteur Deepthi Cheboli Heure 2010 Mai Le lien est ici. https://conservancy.umn.edu/bitstream/handle/11299/92985/Cheboli_Deepthi_May2010.pdf%C2%A0?sequence=1

table des matières

Qu'est-ce que la détection d'anomalies? Détection d'anomalies des données de séries chronologiques ・ Zone d'utilisation Configuration du problème ・ Avec ou sans étiquette · Type de données Méthode ・ Méthode de conversion ・ Méthode de détection

Qu'est-ce que la détection d'anomalies?

La détection d'anomalies fait référence à l'utilisation de l'exploration de données pour identifier des observations, des modèles inattendus, etc. qui ne correspondent pas aux autres données de l'ensemble de données. Les anomalies dans la détection des anomalies sont des modèles de données qui ne sont pas conformes aux concepts clairement définis comme des modèles normaux. La différence dans la méthode de définition du modèle normal ci-dessus peut être la différence dans la méthode. Il existe plusieurs types de détection d'anomalies: la détection de valeurs aberrantes qui trouve une valeur singulière dans les données, la détection de point de changement qui trouve un point où un changement anormal s'est produit dans les données continues et si les données sont anormales ou non. Jugement, détection d'état anormal, etc. Dans le monde réel, les anomalies des données reflètent souvent des défauts incontournables (arrêt cardio-pulmonaire, etc.), c'est donc un domaine de grande recherche.

Détection d'anomalies des données de séries chronologiques

Dans le monde réel, il existe un désir d'enregistrer des valeurs continues et de détecter des défauts dans le monde réel à partir de ces valeurs. Dans de nombreux cas, le défaut apparaît dans les données comme une sorte de valeur anormale. La détection d'anomalies des données chronologiques est particulièrement étudiée. Par rapport à la détection d'anomalies dans d'autres domaines, la valeur elle-même n'est pas une valeur aberrante, mais il existe de nombreuses possibilités de considérer les anomalies qui sont considérées comme des anomalies dans le contexte du contexte.

・ Zone d'utilisation

Il y en a beaucoup, mais un système typique est utilisé dans les systèmes qui détectent les anomalies qui se produisent pendant le vol à partir d'informations provenant de capteurs d'avion.

・ Problème de réglage

Il existe trois paramètres de problème pour la détection des anomalies dans les données de séries chronologiques. 1Contextual anomalies Détecte les points de données jugés anormaux en tenant compte des données avant et après. IMG_0187.jpg 2 anomalous subsequence Détecte les sous-séquences (sections partielles) jugées anormales dans les données de séries chronologiques. IMG_0186.jpg 3 anomalous dataset Déterminez si l'ensemble de données donné est anormal.

・ Avec ou sans étiquette

Il peut être classé en trois types selon le degré d'étiquetage normal ou anormal des données d'entraînement. Supervisé → Normal, anormal, les deux sont étiquetés (en réalité, il y a peu de cas où les deux peuvent être étiquetés)

Semi-supervisé → Seules les données normales sont étiquetées.

Non supervisé → Aucun n'est étiqueté (cependant, de nombreuses méthodes non contrôlées supposent que le nombre de données anormales est un peu ou beaucoup plus petit que celui des données normales. En d'autres termes, l'ensemble de données à entraîner est simulé. Elles sont considérées comme des données normales.)

・ Types de données de séries chronologiques

Les données chronologiques ont deux caractéristiques uniques qui doivent être prises en compte lors de l'exécution d'une analyse. 1 périodicité (si les données ont une période) 2 Synchronisme (lors du traitement de plusieurs données chronologiques, si les données sont synchronisées) IMG_0188.jpg 周期性、同期性共にあるデータの例 IMG_0189.jpg 周期性はあるが同期生はないデータの例

Méthode

Deux types de méthodes ont été introduits dans l'article. Le prétraitement est très important pour les données de séries chronologiques. Cette Transformation semble être la partie qui correspond à ce prétraitement. 1 Méthode de transformation de données chronologiques données en données plus faciles à analyser (Transformation) 2 Méthode de détection des anomalies à partir des données de séries chronologiques (détection)

Transformation

1 Aggression La description Compressez les données pour une meilleure représentation. PAA (apporoximation par agrégation par morceaux) est une méthode typique. Il présente l'avantage d'augmenter l'efficacité du calcul car il réduit les dimensions, mais il y a aussi le risque de masquer des caractéristiques importantes. PAA Envisagez de convertir des données de série chronologique de longueur n en un vecteur de dimension w. Dans l'équation suivante, les données de série temporelle C de longueur n sont converties en un vecteur de dimension w. IMG_0185.jpg En d'autres termes, en divisant les données en w trames à intervalles égaux et en faisant la moyenne des données dans chaque trame, n données de série temporelle peuvent être réduites à w éléments.

2 Signal Processing La description L'analyse est effectuée par conversion dans la région de fréquence en utilisant la technologie de traitement du signal (conversion de Fourier, ondelette). Le plus couramment utilisé est la conversion de Haar IMG_0191.jpg

3 Discretization La description Image de division de la valeur du maximum au minimum, qui fluctue en fonction du temps, en plusieurs zones, affectant chaque donnée à la zone à laquelle les données appartiennent et agitant l'alphabet IMG_0190.jpg La méthode la plus couramment utilisée est SAX Cliquez ici pour une explication de SAX. https://ipsj.ixsq.nii.ac.jp/ej/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=109658&item_no=1&attribute_id=1&file_no=1&page_id=13&block_id=8

Detection

1 window based

La description Les données d'apprentissage sont divisées en n fenêtres et les données de test sont obtenues en décalant légèrement chaque fenêtre. Le degré d'anomalie est calculé et agrégé pour chaque fenêtre en fonction de la distance entre les données de test et les données normales. (On suppose que le concept de distance, qui mesure le degré d'anomalie par le degré de similitude avec les données d'entraînement, est applicable.)

mérite ・ Peut gérer l'un des paramètres de problème ci-dessus Démérite ・ Difficile de déterminer la largeur de la fenêtre ・ Il est très difficile de déterminer la largeur pour déplacer la fenêtre. (Si la largeur est étroite, le coût de calcul sera élevé, et si la largeur est large, il ne sera pas possible de détecter des anomalies se produisant dans la largeur de décalage.) ・ Le coût de calcul est très élevé

2 prediction based

La description Étudié le plus activement dans le domaine des données de séries chronologiques. On suppose que les données normales sont générées à partir d'un processus probabiliste et que les données anormales ne correspondent pas à ce processus. (1) Former le modèle stochastique pour prédire l'état de t + 1 à partir de l'état du temps t. (2) Sur la base de la prédiction, les données de test sont prédites, et l'erreur de la prédiction est définie comme le degré d'anomalie en fixant un seuil. Ce processus est courant. Comme méthode typique MovingAverage, Autoregression, ARMA, ARIMA, Kalman Filter Etc.

mérite ・ Les performances sont bonnes car c'est une méthode qui reflète facilement les caractéristiques des données chronologiques. ・ Tout problème de réglage peut être traité. ・ Une précision élevée est obtenue si la distribution supposée est correcte. Démérite ・ Dans le cas du retour automatique, il est difficile de déterminer l'intervalle à utiliser pour la prédiction, comme avec la méthode basée sur la fenêtre. (Si vous ne définissez pas de section contenant des anomalies, vous ne pourrez pas détecter correctement les anomalies)

3 hidden Markov model based

La description Les données de série chronologique sont générées par une certaine série temporelle cachée, et la méthode est basée sur le principe que la série chronologique est créée à la manière de Markov. (1) Créez un modèle de Markov caché (HMM (λ)) à partir des données données. Pour les données d'apprentissage (train = O1, O2 ...), trouvez la valeur maximale de la probabilité de P (train | λ) à l'aide de la procédure de réestimation de Baum-Welch et identifiez le paramètre HMM. (2) Trouvez P (Otest | λ) à partir des données de test, et considérez celui avec une faible probabilité comme anormal.

mérite ・ Peut gérer tous les paramètres de problème Démérite -Bien que l'on suppose qu'il existe une série chronologique cachée, si les données de la série chronologique n'existent pas, la détection d'anomalies ne peut pas être effectuée correctement.

4 segment based

La description

La série chronologique est décomposée en segments homogènes et le FSA entre les segments (automan fini (un modèle du type de flux logique que les éléments logiquement connectés expriment dans un certain état)) est modélisé. Apprendre. (Dans ce modèle, la connexion logique est exprimée sous forme de probabilité de transition.) Vous trouverez ci-dessous un lien pour expliquer l'Automan fini. https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahUKEwj-lMqxhvHoAhXCPXAKHRJ9Dm0QFjAAegQIAhAB&url=https%3A%2F%2Fja.wikipedia.org%2Fwiki%2F%25E6%259C%2589%25E9%2599%2590%25E3%2582%25AA%25E3%2583%25BC%25E3%2583%2588%25E3%2583%259E%25E3%2583%2588%25E3%2583%25B3&usg=AOvVaw0fOQ4xY7fgxP189BFnv09U Flux de détection d'anomalies ① Créer FSA dans les données d'entraînement (2) Données de test (X = X1, X2 ,,,, Xn) Prédites comme suit Réglez X1 à l'état actuel, puis X2 à Xn dans l'ordre (a) S'il correspond à l'état actuel, laissez-le tel quel (b) Transition vers l'état suivant (possible) (c) Si aucun d'entre eux n'est trouvé, il est jugé anormal.

mérite -Couvre tous les paramètres de problème ci-dessus. Démérite -Echec si les données ne peuvent pas être divisées en segments homogènes. ・ Comme tous les points sont vérifiés à la fois lors de la formation et des tests, le coût du calcul est élevé.

Résumé

J'ai compilé un article d'enquête sur la détection d'anomalies dans les séries chronologiques. On m'a rappelé que le document d'enquête doit être lu en premier lors de l'étude d'une zone. Comme pour toute détection d'anomalies, j'ai senti qu'il était très important de comprendre la nature des données avant de choisir une méthode de détection, et que c'était la tâche la plus importante pour les humains. Je pense que c'est probablement vrai pour l'apprentissage automatique en général. J'en suis encore au début, mais j'aimerais continuer à apprendre avec l'une des choses que j'ai apprises dans cet article comme ma propre connaissance.

Défis et perspectives d'avenir

En raison de mon manque de connaissances mathématiques cette fois, je n'ai pas pu approfondir chaque méthode. L'une des perspectives d'avenir est d'essayer effectivement la méthode apprise cette fois. En particulier, je pense que la méthode basée sur la prédiction semble être facile à mettre en œuvre, alors j'aimerais l'essayer. Je suis encore au début, mais je veux me concentrer sur la compréhension devant moi sans être impatient.

Recommended Posts

J'ai lu un article d'enquête sur la détection d'anomalies dans les séries chronologiques, je vais donc le résumer.
J'ai fait des recherches sur Docker, donc je vais le résumer
J'ai lu 10 livres liés aux données de séries chronologiques, je vais donc rédiger une critique.
Je l'ai personnalisé avec Visual Studio Code (principalement pour python), je vais donc le résumer
J'ai lu 10 livres liés aux données de séries chronologiques, je vais donc rédiger une critique.
Livres sur la science des données à lire en 2020
J'ai lu un article d'enquête sur la détection d'anomalies dans les séries chronologiques, je vais donc le résumer.
Présentation de livres liés à la science des données.
[Python] J'ai fait un décorateur qui ne semble pas avoir d'utilité.
Un mémorandum sur la façon d'écrire des pandas que j'ai tendance à oublier personnellement
Les débutants en Python ont créé un chat BOT alors j'ai essayé de résumer comment le faire
Mon chien m'a dit de faire de moi une star sur Youtube, alors je l'ai analysé avec l'API Youtube.